比方说,我有这两个模型,它们的数据验证属性略有不同:
public Dog
{
int Id{get;set;}
[StringLength(5)]
[Remote("IsDogExists", "ControllerName", HttpMethod = "POST", ErrorMessage = "This dog already exists")]
string Name{get;set;}
}
public Cat
{
int Id{get;set;}
[StringLength(10)]
[Remote("IsCatExists", "ControllerName", HttpMethod = "POST", ErrorMessage = "This cat already exists")]
string Name{get;set;}
}
现在,我想使用相同的Partial View
创建一个新的Cat
和一个新的Dog
。
基本上,Partial View
看起来像:
@Html.ValidationMessageFor(m => m.Name, "", new { @class = "text-danger" })
@Html.DisplayFor(m => m.TextToDisplay)
@Html.TextBoxFor(m => m.Name)
我已经尝试过像:
这样的继承public abtract class Animal
{
public abstract int Id{get;set;}
public abstract string Name{get;set;}
}
public Dog:Animal
{
public override int Id{get;set;}
[StringLength(5)]
[Remote("IsDogExists", "ControllerName", HttpMethod = "POST", ErrorMessage = "This dog already exists")]
public override string Name{get;set;}
}
使用@model Animal
作为部分视图模型,但是验证和绑定无效。
那么,我必须使用哪种结构(局部视图模型和模型类)才能使用不同的模型呈现相同的局部视图并保持验证和绑定?