首页 文章

在asp.net中发送ajax请求时出错

提问于
浏览
0

我的客户端代码发送ajax请求

var taskDetail = {
            Id: id,
            StatusTo: "Completed", //should come from list of status to change 
            Description: description,
            Documents: document,
            Visibility: visibility
        };

        $.ajax({
            url: url_link.task_complete + JSON.stringify(taskDetail),
            type: "GET",
            success: function (e) {

                $('#Task-Status').html(e.Status);
                $('.desc-entry').hide();
                $('.desc-note').find('span').html(e.Description);
                $('#Task-Completion').html(DateHelper(e.CurrentCompletionDate));
                $('.comp-date').show();
                $('.desc-note').show();

                /*
                 * Change status
                 * hide text area
                 * show description
                 * hide complete button
                 * 
                 */

                $('.thumb').find('ul').empty();
                $('#description').val('');


                $('.desc-button').hide();
                updateTaskDocument(taskDetail.Id);
                //updateProjectPoint(taskDetail.Id);
            },
            error: function (xhrRequest, textStatus, errorThrown) {
                alert("Error while sending request");
            }
        });

我的服务器端代码

[AcceptVerbs("GET")]
    [Route("status")]
    public IHttpActionResult ChangeTaskStatus(string task)
    {
        ChangeStatusViewModel status = JsonConvert.DeserializeObject<ChangeStatusViewModel>(task);
        int result = repo.ChangeStatus(status);
        if (result < 1)
        {
            return NotFound();
        }

       // mail.Send(db.GetUserList(db.GetGroup(status.Id)));

        var detail = repo.GetTaskDetail(status.Id);
        return Ok(detail);
    }

得到错误

Newtonsoft.Json.dll中出现“Newtonsoft.Json.JsonSerializationException”类型的异常,但未在用户代码中处理

附加信息:

将值转换为类型'System.Int32'时出错 . 路径'文件[1]',第1行,第107位 .

请帮我

1 回答

  • 0

    MVC Model Binding将为您完成工作 . 您可以在不使用“ JSON.stringify " and make sure that filed in " taskDetail " are the same as " ChangeStatusViewMode ”的情况下提交数据

    $.ajax({
        url: url_link.task_complete,
        data : taskDetail,
        type: "GET",
        dataType : 'json',
        success: function (e) {
        }
    });
    
    public IHttpActionResult ChangeTaskStatus(ChangeStatusViewModel  taskDetail)
    {}
    

相关问题