使用MVC,当您使用类似@ Html.TextBoxFor(...)的内容时,控件将使用模型中的属性属性进行渲染,例如验证。
它还使用类的属性名称作为呈现的HTML控件的名称。这与我们的命名约定有点冲突,所以我希望能够更多地控制ID。
我已经将'htmlAttributes:'添加到帮助器中,这可以实现我的目的,但我想知道:
谢谢, 雅克
答案 0 :(得分:2)
这会如何影响MVC在发布信息时再次实例化模型的能力?
ID属性对发布的任何内容绝对没有影响。提交表单时从不使用ID属性。唯一的要求是该属性在整个DOM中都是唯一的。它是模型绑定器使用的 name
属性。您无法使用htmlAttributes更改此属性,因为此属性是从用作第一个参数的lambda表达式推断出来的,您无论如何都不需要更改它,否则您可能会破坏默认模型绑定器为视图模型重新水化的方式。
有没有办法使用模型类中的属性属性指定控件ID?
是的,但可能会多一点工作。您可以使用标准类型的自定义编辑器模板和自定义元数据感知属性,该属性将此附加元数据信息传递给自定义编辑器模板。如果您对实现细节感兴趣,我可以提供一个示例,但首先我必须了解您为什么需要它。