.NET MVC屏蔽密码文本框

时间:2010-07-15 18:17:15

标签: .net asp.net-mvc

我的印象是使用这样的注释:

<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”用于什么?

2 个答案:

答案 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