我有两个模型,它们的区别仅在于所需的字段,我希望能够使用相同的视图来显示它们。
我有一个 UserEdit 类
public abstract class UserEdit
{
public User User { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string NewPassword { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[EqualTo("NewPassword")]
public string ConfirmPassword { get; set; }
}
以及一个将所需属性添加到 NewPassword 和 ConfirmPassword 属性的 UserCreate 类。
class UserCreate_Metadata
{
[Required]
public string NewPassword { get; set; }
[Required]
public string ConfirmPassword { get; set; }
}
[MetadataType(typeof(UserCreate_Metadata))]
public partial class UserCreate : UserEdit
{
}
如果我将模型绑定到特定类,那么这两个在视图中都可以正常工作,如下所示:
@model Siaa.NextWeb.Data.UserEdit
或者
@model Siaa.NextWeb.Data.UserCreate
有没有办法让视图检测它绑定到哪个类,以便它获取 UserCreate 类的额外验证要求?我尝试使用动态视图,但收到“表达式树可能不包含动态操作”,研究已将我指向用于创建编辑器的 lambda 表达式
@Html.EditorFor(model => model.User.FirstName)