Javascript 创建jquery自定义对象

Javascript 创建jquery自定义对象,javascript,jquery,asp.net,asp.net-mvc,Javascript,Jquery,Asp.net,Asp.net Mvc,在asp中,我有一个函数: public async Task<IHttpActionResult> updateComment(int id, Comment comment) { //some stuff } 在ajax请求中,我将数据发送为: $.ajax({ url: '/api/Comment/updateComment', dataType: "json", cont

在asp中,我有一个函数:

public async Task<IHttpActionResult> updateComment(int id, Comment comment)
{
    //some stuff
}
在ajax请求中,我将数据发送为:

$.ajax({
                url: '/api/Comment/updateComment',
                dataType: "json",
                contentType: "application/json",
                cache: false,
                type: 'POST',
                data: { id: com.id, comment: com },
                success: function (data) {
                    alert("done");
                },
                error: function () {
                    alert("error");
                }
            });
但请求不去上面的asp.net函数。我在浏览器控制台窗口
404(未找到)
中出错。错误是因为它没有收到预期的
注释
对象。我更改了ajax请求方法以查看url,url如下。

我定义的
com
函数是否有问题?为什么它不起作用

更新

public async Task<IHttpActionResult> updateComment()
{
    //some stuff
}
并通过以下方式发送数据:

data: ko.toJSON(com),

它又能正常工作了

错误代码是
405:methodnotallowed
我猜这类似于,您的ajax是
类型:“Post”
请求,但您的后端需要一些
GET
请求


另一个建议是,您可以发送带有以下内容的字符串化对象:

data : '{ "id":"' + com.id + '", "comment":"' + com + '"}',

如果将ajax post与
两个
参数
类对象
其他类型
一起使用,则需要创建其他obj,如下所示:

data: JSON.stringify(obj),
注意:确保com对象的所有属性与您的注释类相同

var com =  {
            id: self.id,
            description: self.description,
            postedBy: self.postedById,
            time: new Date($.now()),
            adId: self.adId,
        };

var obj = {};
obj.id = com.id;
obj.comment = com;
并使用
JSON.Stringy(obj)
传递数据,如下所示:

data: JSON.stringify(obj),
我已经测试了它正在工作的代码,请检查屏幕截图:


您的成功回调函数中有一个输入错误。删除“是的,那是个打字错误。”。我已经更正了。请在方法名称上方写入属性
[HttpPost]
。好!它不起作用。仍然获取错误
404(未找到)
404是页面未找到错误。在接收到
POST
请求时,确保您使用了正确的
URL
方法。我也在发送
POST
请求。这张图片是
GET
请求,我只是用它来检查url对象是如何发送的<代码>405:方法不允许
是因为它正在接收
POST
请求,但我正在发送
GET
只有这次我更新了问题。请看一下是否有帮助。405 POST方法经常出现错误。您可能试图在网站上引入某种输入表单,但并非所有ISP都允许使用必要的POST方法来处理表单。您可以从这里查看更多信息:
data:JSON.stringify({id:com.id,comment:com}),
尝试一下。对不起。我想你误解了这个问题。实际上,我得到了
404(未找到)
未找到错误。发布图片只是为了显示使用GET requestnot working的url<代码>404(未找到)
我更新了问题。请看一看。将您的参数int类型更改为string,并按照上面的顺序创建obj,然后检查一次。谢谢,但我在这方面浪费了很多时间。我找到了最糟糕的解决办法。我刚刚删除了id参数。
data: JSON.stringify(obj),