不确定这是否应该有效,但事实并非如此。谁能解释为什么不呢? 采用股票标准MVC 3互联网模板(表单身份验证)并将RegisterModel替换为RegisterViewModel:
public class RegisterViewModel
{
public RegisterModel registerModel { get; set; }
}
现在更改Register视图以引用@model MvcApplication1.Models.RegisterViewModel和所有控件,例如:@ Html.TextBoxFor(m => m.registerModel.UserName)。
您会注意到注册模型上的验证属性会中断。为什么会这样?
答案 0 :(得分:1)
我怀疑compare属性中的“密码”的内联声明是否存在嵌套对象的问题。
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
如果有帮助,你可以改用继承(确认这有效):
public class RegisterViewModel : RegisterModel
{
}