当通过 GET 而不是 POST 调用时,让 MVC 填写我的自定义模型参数似乎有问题。
我有一个 JavaScript 片段,它调用如下操作:
$.getJSON('<%= Url.Action("DoSearch") %>' + location.search,
function(data) {
if (data.Result == "OK") {
location.href = location.href;
}
});
它的作用基本上是调用一个单独的操作,将与调用页面相同的查询字符串传递给它。然后如果结果为“OK”,则刷新当前页面。
动作定义如下:
public ActionResult DoSearch(SearchParameters searchParameters)
型号为:
public class SearchParameters
{
public string Query;
...
}
调用 URL(用 firebug 验证)就像/DoSearch?Query=some+query
. (也试过/DoSearch?searchParameters.Query=some+query
没有成功)
无论我尝试什么,我的参数总是显示为空(不是 null,只是所有参数都被初始化为其默认值)
如果我这样定义动作:
public ActionResult DoSearch(string Query, ...)
然后我的参数被正确填写。然而,与模型无关。
我假设:
a) 填充对象模型不适用于 GET 请求。
b) 我做错了什么
有任何想法吗?谢谢。