我在 MVC3 应用程序中遇到一种情况,我希望能够在一些由帮助程序(DropDownList)生成的 html 上设置 name 属性。
看来这是不可能的。显然,助手会默默地覆盖您为传递给助手的 html 属性对象中的 name 属性指定的任何值。
在我浪费太多时间尝试与现有助手一起工作之前,我想确认一下。
而且,顺便说一句,如果设计上不可能……我认为这是 MVC 框架中的一个愚蠢的限制。是的,我知道分配错误的名称属性会破坏自动模型绑定。但是当我需要的时候,我应该能够做到这一点。毕竟,我总是可以使用我选择的任何名称属性来编写原始 html。帮手应该提供帮助,而不是束手无策。
编辑讨论编辑器模板是否维护导航上下文
Darin,我正在使用编辑器模板(我通常使用术语“部分”,因为编辑器模板是一种特殊的部分视图)。
编辑器模板确实修改了 HtmlFieldPrefix - 这就是我注意到我遇到问题的方式:)。我正在使用这样的电话:
// call in higher level partial - context is 'eae'
@Html.EditorFor(m => m.Value)
...
// inside editor template for typeof(Value) context is 'eae:Value'
需要这种上下文转换来保持默认绑定机制正常工作。我使用了一种不同的方法,我希望上下文在整个调用链中保持固定(即,当执行深入到更深的部分时,我希望上下文保持不变)。