我的印象是使用这样的注释:
<Required()>
<DisplayName("Choose a Password:")>
<ValidatePasswordLength()>
<DataType(DataType.Password)>
Public Property Password As String
在视图中使用时会创建一个蒙版字段:
<%: Html.TextBoxFor(Function(model) model.Password) %>
<%: Html.ValidationMessageFor(Function(model) model.Password) %>
然而,这是在没有type =“password”
的情况下呈现的如果不是这个,那么“DataType.Password”用于什么?
答案 0 :(得分:26)
TextBoxFor
会覆盖您的注释,因为它表示明文输入。正如marcind所说,EditorFor
尊重注释,或者你可以使用PasswordFor
来表示该字段。
答案 1 :(得分:19)
您正在使用Html.TextBoxFor
,它始终在生成的HTML中输出<input type="text">
标记。
如果您希望自动遵守DataType.Password批注,则应使用Html.EditorFor
代替。
您可以在此处详细了解编辑器模板以及如何自定义它们:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html