0

我有一个需要视图模型的操作。

[HttpPost]
public JsonResult SearchAjax(JQueryDataTablesModel jQueryDataTablesModel, BloodSearchAjaxViewModel searchModel)
{
...

在那个视图模型中有一个数组

public ReadOnlyCollection<string> mDataProp_ { get; set; }

当我调用操作时,我通过提琴手验证数组数据正在传递

在此处输入图像描述

但是,该数组(以及视图模型中的其他数组)为空。

此外,如果我在视图模型中放入一个名为mDataProp_0它的字段,则会被填充。

根据评论更新。这是发布数据的视图中的代码。我正在使用 jQueryDataTable。我认为这段代码并不重要,因为我验证了数据在 http 请求中。

/* Initialize table */
        var oTable = $('#search-results-table').dataTableWithFilter({
                "sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
                "sPaginationType": "bootstrap",
                "bProcessing": true,
                "bServerSide": true,
                "sAjaxSource": 'SearchAjax',
                "sServerMethod": "POST",
                "aoColumns": [
                    { "mDataProp": "BloodIdentificationNumber" },
                    { "mDataProp": "Status" },
                    { "mDataProp": "ExpirationDate" },
                    { "mDataProp": "CompanyName" },
                    { "mDataProp": "Location" },
                    { "mDataProp": "City" }
                ],
                // Initialize our custom filtering buttons and the container that the inputs live in
                filterOptions: { searchButton: "search-button", clearSearchButton: "clear-search-button", searchContainer: "search-block" }
        });

有任何想法吗?谢谢!

4

2 回答 2

0

我找到了解决方案。研究项目我看到你必须在 Global.asax 文件中包含一行。

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);

        // This line
        ModelBinders.Binders.Add(typeof(JQueryDataTablesModel), new JQueryDataTablesModelBinder());
    }

在 JQueryDataTablesModel 用作参数的地方,下面的行应该包含在 Global.asax 中,问题就解决了。

于 2014-06-06T13:24:28.193 回答
0

默认模型绑定器非常挑剔。我认为您在这里看到的只是数据不符合活页夹期望的约定。您的选择是 1) 将数据按摩到默认活页夹接受的内容或 2) 编写自定义模型活页夹。以下是这两种方法的一些链接。

ASP.NET MVC - 能够处理数组的自定义模型绑定器 http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

于 2013-04-17T19:36:28.113 回答