2011-11-20 60 views
1

我有这个属性的登录模式(MVC3,剃刀)无法更改显示

[DataType(DataType.Password)] 
[PasswordLength] 
[Display(Name = "testname")] 
public string Password { get; set; } 

在我看来

<div class="editor-label"> 
    @Html.LabelFor(m => m.Password) 
</div> 
<div class="editor-field"> 
    @Html.PasswordFor(m => m.Password) 
    @Html.ValidationMessageFor(m => m.Password) 
</div> 

但不显示测试名称为

@Html.LabelFor(m => m.Password) show Password whats the problem? 

当我删除

[DataType(DataType.Password)] 
[PasswordLength] 

工作正常,但这两个属性是密码字段所必需的。

+0

当您将Display属性先于另外两个时,会发生什么? – Aaronontheweb

+0

我测试过它不起作用 – motevalizadeh

+0

属性顺序无效。你不能指望任何事情。密码不需要'DataType'属性。由于不知道PasswordLength来自哪里,这意味着我无法测试它,但是你当前的设置可以正常使用mvc/razor,所以看起来'PasswordLength'可能是罪魁祸首 - 尽管它必须修改ModelMetadata不是一个共同的事情要做。 – Buildstarted

回答

1

ASP.NET MVC目标3.5框架和显示是.NET 4属性。您可以使用DisplayName属性,直到ASP.NET MVC的下一个版本出现。

有关详细信息,请参见Display Attribute Not Working