首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个MVC5模型属性来设置HTML属性和MaxLength?

是否有一个MVC5模型属性来设置HTML属性和MaxLength?
EN

Stack Overflow用户
提问于 2014-09-26 11:11:39
回答 1查看 4.5K关注 0票数 3

过去,我在MVC3中使用了一个自定义类(MVC3),通过声明如下所示的模型对象,在MVC3中设置HtmlProperties。

代码语言:javascript
复制
[HtmlProperties(Size = 1, MaxLength = 2)]
public string MyModelField{ get; set; }

在不需要构建自定义类的情况下,是否有一个MVC5等效于这样做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-26 12:45:28

据我所知,ViewModel和Model是,而不是,应该包含关于如何呈现事物的信息。它们应该只包含类型(例如。字段是字符串)和要求(例如。字段不为空)。

因此,IMHO呈现对象(输入应该是什么样的)应该在Razor的内部。实际上,MVC5添加了新的选项来实现这个目标--您可以在呈现EditorFor时将htmlAttributes对象传递给additionalViewData对象参数。

代码语言:javascript
复制
@Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control", custom_attribute = "lol" } })

这在MVC3和MVC4中是不可能的,因为很少有Helpers接受htmlAttributes作为参数,很少Html只接受additionalViewData

此外,如果您打算在[MaxLength(int i)]中限制输入的长度,我认为您应该使用ViewModel (因为这也有助于MVC验证客户端和服务器端)。

代码语言:javascript
复制
    [DisplayName("Name")]
    [Required]
    [MaxLength(5)]
    public string Name{ get; set; }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26058219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档