【问题标题】:MVC3: How to bind querystring array onto model?MVC3:如何将查询字符串数组绑定到模型中?
【发布时间】:2012-10-29 11:04:17
【问题描述】:

我有一个没有参数的动作。我在视图中有一个表单,它对此操作执行 GET。 在操作中,我实例化了一个对象(因此我可以从 DB 中获取一些默认值),然后我在其上使用 UpdateModel(),它使用 DefaultModelBinder。

所以我的模型有以下属性def:

public string[] AI { get; set; }

我的查询字符串包括表单中的其他内容:

?AI=12-345&AI=45-43&AI=48-546

在动作调用 UpdateModel() 之后,AI 属性为空! 但是,如果我将操作定义更改为:

MyAction(string[] AI)

然后填充 AI 参数,就像我期望的模型属性一样。这是默认模型绑定器中的错误吗?我尝试将属性设置为List<string>,但这也不起作用。

有什么想法吗?

【问题讨论】:

    标签: asp.net-mvc-3 model-binding


    【解决方案1】:

    我一生中最大的荷马 DOH。 我所做的很好,MVC 会很好地绑定它如果它使用的是我在帖子中声称的 DefaultModelBinder;但是,在需要绑定的模型中添加额外的值也无法绑定(简单的布尔值?)我深入挖掘并发现自定义绑定器已在 MVC 中注册了模型的类型,并且它正在为每个属性做一些事情模型,因此对我的新模型无能为力,:(。

    所以这个故事的寓意是不要忘记检查活页夹注册,或者只是不使用注册并始终明确说明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-15
      • 2011-07-27
      • 1970-01-01
      • 2020-09-02
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多