Jquery 为什么MVC3不绑定这个(JSON)
我是MVC和modelbinding的新手,所以我猜我犯了一些琐碎的错误,我尝试绑定一些数据 观点Jquery 为什么MVC3不绑定这个(JSON),jquery,vb.net,json,asp.net-mvc-3,Jquery,Vb.net,Json,Asp.net Mvc 3,我是MVC和modelbinding的新手,所以我猜我犯了一些琐碎的错误,我尝试绑定一些数据 观点 $.ajax({ url: '@Url.Action("Moo")', type: "post", dataType: "string", contentType: "application/json", data: JSON.stringify({"test": "ba
$.ajax({
url: '@Url.Action("Moo")',
type: "post",
dataType: "string",
contentType: "application/json",
data: JSON.stringify({"test": "bar", "test2": "bar2"}),
success: function (data) {}
});
模型
Public Class MyTestData
Public Property test() As String
Public Property test2() As String
End Class
控制器
Function Moo(test As MyTestData) As ActionResult
Return View()
End Function
当我在控制器中运行dubugger时,我从测试中接收到“nothing”,如果我只使用一个字符串,代码就会工作(视图中的数据更改为{(test:bar)},控制器数据类型更改为从MytestData到string)
任何输入都是正确的 重命名动作参数。它被称为
test
,与内部的test
属性冲突:
Function Moo(model As MyTestData) As ActionResult
Return View()
End Function
我猜你的测试太多了:-)FooBar
似乎是个更好的名字:-)
除此之外,数据类型
参数也有问题。没有string
这样的值。使用ASP.NET MVC,您通常不需要提供它,因为框架正确地设置了HTTP内容类型响应头,jQuery将使用它来自动解析结果。因此,只需去掉它,或者确保已将其指定为与实际返回类型匹配的正确值。由于您的操作返回一个视图,您可以将其设置为数据类型:“html”
,以便保持一致