gpt4 book ai didi

c# - 是否有用于设置 HTML 大小属性和 MaxLength 的 MVC5 模型属性?

转载 作者:行者123 更新时间:2023-11-30 15:28:13 25 4
gpt4 key购买 nike

过去,我使用 MVC3 中的自定义类 (HtmlProperties) 通过声明我的模型对象来设置 razor 中的 HTML 属性,如下所示。

[HtmlProperties(Size = 1, MaxLength = 2)]
public string MyModelField{ get; set; }

是否有一个 MVC5 等效项可以在无需构建自定义类的情况下执行此类操作?

最佳答案

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

因此恕我直言,渲染对象(输入应该是什么样子)应该在 Razor View 内部。事实上,MVC5 添加了新选项来实现这一点 - 您可以在呈现 EditorFor 时将 htmlAttributes 对象传递给 additionalViewData 对象参数。

@Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control", custom_attribute = "lol" } })

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

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

    [DisplayName("Name")]
[Required]
[MaxLength(5)]
public string Name{ get; set; }

关于c# - 是否有用于设置 HTML 大小属性和 MaxLength 的 MVC5 模型属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26058219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com