Частичное представление с переменным типом модели - PullRequest
0 голосов
/ 21 сентября 2018

Обновление от Трэвиса Ответ:

public interface IEntity
{
    int Id{get;set;}
    string Name{get;set;}
}
public class Vehicule:IEntity
{
    public int Id{get;set;}
    public string Name{ get; set; }
}
public class Sector:IEntity
{
    public string Id{ get; set; }
    public string Name{ get; set; }
}

и эта модель для основного представления:

public class MainViewModel
{
    public Vehicule Vehicule{ get; set; }
    public Sector Sector{ get; set; }
}

Теперь я хочу реализовать форму для каждой сущности (это будет модальноформа но это не главное).Это будет более сложно, но для примера это просто:

@Html.TextBoxFor(m=>m.Name)
//etc...

Я пытаюсь реализовать интерфейс с универсальным типом, но я не очень понимаю, как это сделать, особенно универсальный тип.

Теперь у меня есть @model GenericViewModel<IEntity> в моем частичном представлении и MainViewModel в моем представлении.

Как передать модель в частичное представление с универсальным типом?

@Html.RenderPartial("_PartialView",????)

Я думаю, что в * 1021 чего-то не хватает, но я много чего пытался безуспешно.

Было бы очень полезно, если бы вы могли сказать мне, что мне не хватает.

Спасибо

1 Ответ

0 голосов
/ 21 сентября 2018

Используйте интерфейс для предоставления свойств или поведения различным типам.

public interface IEntity
{
    string PropertyA;
    string PropertyB;
    string PropertyC;
}

Затем каждый объект наследует этот интерфейс

public class Entity1 : IEntity { ... }
public class Entity2 : IEntity { ... }
public class Entity3 : IEntity { ... }

И теперь, по вашему мнению, вы можете предоставить интерфейсобъекты недвижимости

@model GenericModelType<IEntity>
...