Модель частичного представления для разных типов объектов - PullRequest
0 голосов
/ 26 сентября 2018

Допустим, у меня есть эти 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 в качестве модели частичного представления, но проверка и привязка не работают.

Итак, какую структуру (модель частичного представления и класс модели) я должен использовать, чтобы иметь возможность визуализировать одно и то же частичное представление с различными моделями и сохранять валидацию и привязку?

...