【问题标题】:ASP.NET MVC Model Binders. Call a controller with an array of objects parameterASP.NET MVC 模型绑定器。调用带有对象数组参数的控制器
【发布时间】:2010-11-12 06:38:53
【问题描述】:

我想要一个 MVC 控制器的以下签名。

public ActionResult Create(Persons[] p)
{

}

有可能有这样的东西吗?

编辑: 假设我想通过提交由特殊符号分隔的名称列表来获取人员对象数组。 例如我提交一个表单

<form>
   <input name="person_name">Max|Alex|Andrew</input>
</form>

我想应该通过实现 IModelBinder 接口来完成,但我没有找到任何示例。

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    哦,我找到了如何做到这一点。

    在 Global.asax 文件中应写 Application_Start() 函数:

    ModelBinders.Binders(typeof(Person[])) = new PersonBinder();
    

    以这种方式注册自定义活页夹。

    【讨论】:

      【解决方案2】:

      是的。请参阅this question 了解如何获取由DefaultModelBinder 绑定的集合。

      【讨论】:

      • 是的,但是只要你遵循 DefaultModelBinder 理解的模式,你就不必。
      【解决方案3】:

      我认为这种事情会奏效

      <input type="text" name="Person[1].name" />
      

      【讨论】:

        【解决方案4】:

        您可能需要玩弄a custom controlleractioninvoker

        或者只是一个普通的modelbinder

        安德鲁

        【讨论】:

        • 它适用于任何类型,“Persons[]”是一种与“Persons”完全相同的类型
        猜你喜欢
        • 1970-01-01
        • 2012-11-03
        • 2015-03-28
        • 2011-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多