Asp.net mvc 用于MaxLength和Size的MVC 2编辑器

Asp.net mvc 用于MaxLength和Size的MVC 2编辑器,asp.net-mvc,Asp.net Mvc,如何在MVC2中设置文本框的最大长度和大小? 关于这件事,有人问了几个问题。作为MVC的新手,我发现所有的解决方案似乎都不起作用——可能是因为我做得不对 在任何情况下,我想知道是否有更好的解决方案,因为前面的问题似乎是在MVC2测试版的时候提出的。很容易,你只需要有额外的HtmlAttributes <%= Html.TextBoxFor(model => model.Member, new { maxlength = "20", width = "15" }) %> <

如何在MVC2中设置文本框的最大长度和大小? 关于这件事,有人问了几个问题。作为MVC的新手,我发现所有的解决方案似乎都不起作用——可能是因为我做得不对


在任何情况下,我想知道是否有更好的解决方案,因为前面的问题似乎是在MVC2测试版的时候提出的。

很容易,你只需要有额外的HtmlAttributes

<%= Html.TextBoxFor(model => model.Member, new { maxlength = "20", width = "15" }) %> 
<%= Html.TextBoxFor(model => model.Member, new { maxlength = "20", style = "width:200px;" }) %> 
model.Member,新的{maxlength=“20”,width=“15”})%>
model.Member,新的{maxlength=“20”,style=“width:200px;”})%>

上述解决方案可行,但如果您有该字段的多个实例,则在模型或视图模型中设置该字段会更容易。修改实际模型时要小心,因为它们在更新时可能会不稳定

例如: 在模型或视图模型中

[DisplayName("Notes")]
[MaxLength(500, ErrorMessage="Maximum length of notes field is 500 characters...")]
[DataType(DataType.MultilineText)]
public string Notes { get; set; }
要在提交时进行验证,您需要在web.config中包含以下内容

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

构建解决方案并进行测试。希望这能帮助其他人寻找解决方案。

太棒了!他们确实在测试版之后修复了它。即便如此,我发现在您的解决方案中只有第二行起作用。此外,该解决方案仅适用于TextBoxFor,而不适用于EditorFor,尽管目前我对此没有意见。您可以像这样传递任何html属性,但请记住,它们必须对html helper生成的指定html元素有效—在本例中为输入。主题标题为EditorFor—答案为TextBoxFor。仅供参考-除非您使用System.ComponentModel.DataAnnotations“[StringLength(5,ErrorMessage=“必须是5个或更少的字符”)]”装饰属性,否则额外的HtmlAttributes不适用于EditorFor,否则需要更改为TextBoxFor,然后我们可以使用答案中提到的额外HtmlAttributes。
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
@Html.EditorFor(model => model.Notes, new { htmlAttributes = new { @class = "form-control", rows = "5", @placeholder = "Notes", title = "Enter any notes..." } })
@Html.ValidationMessageFor(model => model.Notes, "", new { @class = "text-danger" })