1

我对 MVC 和模型绑定真的很陌生,所以我想我犯了一些琐碎的错误,我尝试绑定一些数据;

看法;

    $.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

当我运行调试器时,我从控制器中的测试中收到“无”,如果我尝试只使用一个字符串,则代码有效(视图中的数据更改为 {(test:bar)} 并且控制器数据类型从 MytestData 更改为细绳)。

任何输入都适用。

4

1 回答 1

3

重命名您的操作参数。它被称为并与您内部test的属性相冲突:test

Function Moo(model As MyTestData) As ActionResult
    Return View()
End Function

我猜你有太多的测试 :-)FooBar似乎是一个更好的名字 :-)

开个玩笑,您的dataType参数也有问题。没有这样的价值string。使用 ASP.NET MVC,您通常不需要提供它,因为框架正确设置了 HTTP Content-Type 响应标头,而 jQuery 将使用它来自动解析结果。所以只需摆脱它,或者确保您已将其指定为正确的值以匹配您的实际返回类型。由于您的操作返回一个视图,因此您可以将其设置dataType: 'html'为一致。

于 2013-01-28T07:57:59.610 回答