Допустим, у меня есть эти 2 модели с небольшой разницей в атрибутах проверки данных:
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
в качестве модели частичного представления, но проверка и привязка не работают.
Итак, какую структуру (модель частичного представления и класс модели) я должен использовать, чтобы иметь возможность визуализировать одно и то же частичное представление с различными моделями и сохранять валидацию и привязку?