Chr*_*kes 3 c# asp.net-mvc asp.net-mvc-5
过去,我在 MVC3 中使用了一个自定义类 (HtmlProperties),通过如下声明我的模型对象来设置 razor 中的 HTML 属性。
[HtmlProperties(Size = 1, MaxLength = 2)]
public string MyModelField{ get; set; }
Run Code Online (Sandbox Code Playgroud)
是否有一个 MVC5 等价于做这样的事情而不必构建自定义类?
好吧,据我所知,ViewModel 和 Model不应该包含有关如何呈现事物的信息。它们应该只包含类型(例如字段是字符串)和要求(例如字段不为空)。
因此恕我直言,渲染对象(输入应该是什么样子)应该在 Razor View 内。事实上,MVC5 添加了新的选项来实现这一点——你可以在渲染 EditorFor 时htmlAttributes
将additionalViewData
对象传递给对象参数。
@Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control", custom_attribute = "lol" } })
Run Code Online (Sandbox Code Playgroud)
这在 MVC3 和 MVC4 中是不可能的,因为很少有 Html Helpers 接受htmlAttributes
作为参数,很少有 Html Helpes 只接受additionalViewData
另外,我认为[MaxLength(int i)]
如果您打算限制 ViewModel 中输入的长度,则应该使用它(因为这也将帮助 MVC 验证它的客户端和服务器端)
[DisplayName("Name")]
[Required]
[MaxLength(5)]
public string Name{ get; set; }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4408 次 |
最近记录: |