如何接收post值MVC3(Jquery Ajax)
我是MVC和这种编程的新手,我想这很简单,但经过5个小时的搜索和尝试后,我觉得自己很不适应。在我看来,我有一个帖子是这样的如何接收post值MVC3(Jquery Ajax),jquery,vb.net,asp.net-mvc-3,Jquery,Vb.net,Asp.net Mvc 3,我是MVC和这种编程的新手,我想这很简单,但经过5个小时的搜索和尝试后,我觉得自己很不适应。在我看来,我有一个帖子是这样的 $.ajax({ url: '@Url.Action("Moo")', type: "post", dataType: "string", contentType: "json", data: JSON.stringify({"foo": "bar"}), success: f
$.ajax({
url: '@Url.Action("Moo")',
type: "post",
dataType: "string",
contentType: "json",
data: JSON.stringify({"foo": "bar"}),
success: function (data) {}
});
});
Function Moo(test As String) As ActionResult
Return View()
End Function
然后我在控制器中有一个函数,看起来像这样
$.ajax({
url: '@Url.Action("Moo")',
type: "post",
dataType: "string",
contentType: "json",
data: JSON.stringify({"foo": "bar"}),
success: function (data) {}
});
});
Function Moo(test As String) As ActionResult
Return View()
End Function
当我运行它时,调试器显示我得到了Return语句,但是我没有得到任何要赋值的测试(foo:bar)
我需要考虑的另一个问题是,当我从ajax函数接收数据时,我是否可以将其转换回JSON,或者我是否必须在模型中创建自己的类并将变量分配给该类
任何输入都将被告知 参数/属性名称应匹配 因此,如果您希望在操作中使用名为
test
的值,则需要使用键test
发送该值。因此,将foo
更改为test
:
$.ajax({
url: '@Url.Action("Moo")',
type: "post",
dataType: "string",
contentType: "application/json",
data: JSON.stringify({"test": "bar"}),
success: function (data) {}
});
});
注意,JSON的正确内容类型是application/JSON
如果您有更复杂的数据,比如JSON.stringify({“test”:“bar”,“test1”:“bar1”}),
您可以在服务器端创建一个对象(很抱歉C#)
然后,您可以在行动中使用此模型:
Function Moo(test As MyClass) As ActionResult
Return View()
End Function
MVC模型绑定器将负责解析数据和填充属性。您可以从这里开始学习模型绑定:这是您希望尝试的另一种方法 [尽管可能不是最好的]
$.ajax({
url: '@Url.Action("Moo")?test="testdata"',
type: "post",
dataType: "string",
contentType: "json",
data: JSON.stringify({"test": "bar"}),
success: function (data) {}
});
});
您传递的参数名称应与服务器上操作方法的参数名称匹配。我认为您必须更改以下内容:
$.ajax({
url: '@Url.Action("Moo")',
type: "post",
dataType: "text", //<---------------------this
contentType: "application/json", // <-----this
data: JSON.stringify({"foo": "bar"}),
success: function (data) {}
});
});
数据类型包括:
:返回可通过jQuery处理的xml文档“xml”
:以纯文本形式返回html;在DOM中插入时,将计算包含的脚本标记“html”
:将响应评估为JavaScript并以纯文本形式返回“script”
:将响应评估为json并返回JavaScript对象“json”
:使用jsonp加载JSON块。在URL末尾添加一个额外的“?callback=?”以指定回调“jsonp”
:纯文本字符串“text”