当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET MVC ModelBinder不使用GET请求和/或jQuery AJAX?

如何解决《ASP.NETMVCModelBinder不使用GET请求和/或jQueryAJAX?》经验,为你挑选了1个好方法。

当通过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没有成功)

无论我尝试什么,我的参数总是显示为空(不为空,只是所有参数都被初始化为默认值)

如果我定义这样的动作:

    public ActionResult DoSearch(string Query, ...)

然后我的参数被正确填充.然而,不是模型.

我假设:

a)填充对象模型对GET请求不起作用.

b)我做错了什么

有任何想法吗?谢谢.



1> Thomas Stock..:

您需要在类上绑定公共属性.

更换

public string Query;

public string Query{get;set;}

至少这是我必须要做的才能让它在我的项目中工作..我不知道你是否还有其他问题.哦,我也使用GET,所以它应该工作.

这是我的Parameters类:

public class Parameters
{
    public int? page { get; set; }
    public int? pageSize { get; set; }
    public string[] columnsToDisplay { get; set; }
    public string columnToSort { get; set; }
    public bool? descending { get; set; }
}

没有绑定字段.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有