Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我能';我也不能让POST使用Ajax_Ajax_Post - Fatal编程技术网

我能';我也不能让POST使用Ajax

我能';我也不能让POST使用Ajax,ajax,post,Ajax,Post,以下是我在CSHTML文件中的AJAX调用: var personId = "Somebody"; var personNotes = "E, F Sharp, A Flat"; var TheData = { "D": { "Id": personId, "Notes": personNotes} }; $.ajax({ type: "POST", url: "/DataHandler.svc/PostResult", data: TheData, cont

以下是我在CSHTML文件中的AJAX调用:

var personId = "Somebody";
var personNotes = "E, F Sharp, A Flat";

var TheData = { "D": { "Id": personId, "Notes": personNotes} };

$.ajax({
    type: "POST",
    url: "/DataHandler.svc/PostResult",
    data: TheData,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        $(ValidationErrorDiv).html("It works");
    },
    error: function (HelpRequest, ErrorCode, TheError) {
        $(ValidationErrorDiv).html("It doesn't work - " + TheError);
    }
});
下面是DataHandler.svc.cs中的内容:

public class PostResultType
{
    public String Id;
    public String Notes;
}

// in the interface:

{   
  [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
  int PostResult(PostResultType D);
}

// in the class:

public int PostResult(PostResultType D)
{
    return 1;
}
如果按原样调用,Ajax调用将返回一个内部服务器错误,而不返回C代码

如果我在Ajax调用中将“data:TheData”替换为“data:JSON.stringify(TheData)”,它将到达C代码,但D.Id和D.Notes都为空

如果我将“PostResultType D”替换为“String Id,String Notes”作为PostResult的参数, DataHandler.svc.cs中的所有调用都开始抛出内部服务器错误。 显然,使用Post的调用仅限于一个参数


是的,使用Get而不是Post是可行的,但最终目标是使用它来更新数据库,因此我更希望使用Post。

您仍然需要将对象序列化为JSON字符串:您为什么不使用ASP.NET Ajax客户端框架?它为你做了所有这些…明白了-谢谢。现在可以了。