我正在构建mvc 5 Web应用程序,并使用以下模型进行验证:
public abstract class AccountModel
{
public abstract string Password { get; set; }
}
public class EditAccountModel : AccountModel
{
[DataType(DataType.Password)]
[Display(ResourceType = typeof(UsersResources), Name = "Password")]
public override string Password { get; set; }
}
public class RegisterAccountModel : AccountModel
{
[DataType(DataType.Password)]
[Required]
[Display(ResourceType = typeof(UsersResources), Name = "Password")]
public override string Password { get; set; }
}
我想让基类在同一个编辑表单中使用它,如下所示: @model WebApplication.AccountModel
<div class="form-group">
@Html.LabelFor(x => x.Password)
@Html.PasswordFor(x => x.Password)
</div>
但具有不同的验证规则。目前没有客户端验证工作,因为模型类型为AccountModel
。是否可以在继承的模型上添加属性并支持asp.net mvc 5的客户端和服务器端验证?
答案 0 :(得分:0)
根据您的描述,帐户模型没有数据注释,您在视图中使用它。
您是否尝试过将您的视图改为RegisterAccountModel?
听起来你正试图从你的代码中重用,但也许你在这里尝试有点太难了。也许注册和账户管理不一样 - 也许在注册时你最终会添加一个“验证码”功能,或者“你听说过我们的地方”等等......