Различный вид в зависимости от модели недвижимости - PullRequest
0 голосов
/ 07 ноября 2018

У меня возникла проблема на какое-то время, поэтому мы надеемся получить помощь здесь.

Я сделал телегид, который состоит из 5 различных видов: ChannelOne, ChannelTwo, ChannelThree, ChannelFour и один, который показывает все четыре канала (fullView). У меня есть 5 таблиц для этого, и по фреймворку сущности сделано 5 соответствующих моделей, с такими свойствами (они аналогичны для остальных 4 моделей):

public partial class ChannelOne
{
    public int Id_ChannelOne_ { get; set; }
    public string Channel_ChannelOne_ { get; set; }
    public string Program_ChannelOne_ { get; set; }
    public string Date_ChannelOne_ { get; set; }
    public Nullable<System.TimeSpan> Time_ChannelOne_ { get; set; }
}

Когда я нажимаю на программу в моем полном окне, я хочу перейти к представлению, которое соответствует этой программе (представление этого конкретного канала).

если у меня есть actionlink для этого, чтобы вернуться к моему контролю для моего fullView,

   @Html.ActionLink("Go to channel", "Index", new { channel = item.Channel })

как я могу решить, какой вид выбрать в зависимости от свойства моего канала? Я хочу что-то вроде этого:

private TvProgramDBEntities db = new TvProgramDBEntities();

 [HttpPost]
    public ActionResult Index(string channel)
    {
        if (channel == "ChannelOne")
            return View(db.ChannelOne);
        if (channel == "ChannelTwo")
            return View(db.ChannelTwo);
    }
                 .
                 .
                 .

1 Ответ

0 голосов
/ 07 ноября 2018

Mvc будет искать представление, когда вы используете подсказки шаблонов Html.DisplayFor и Html.EditorFor внутри основного представления.

* 1003 Е.Г. *

/Views/Channel
    /DisplayTemplates
        ChannelOne.cshtml
   Index.cshtml

с моделью типа

public class ChannelViewer
{
    public object Channel {get;set;}
}

Так что вы можете иметь в index.cshtml

@model ChannelModel

@Html.DisplayFor(m => m.Channel)

Это позволит найти правильный вид из папки displaytemplates. Будет выполнен поиск в текущей папке контроллеров, а затем в папке общих шаблонов дисплея.

Вы можете сделать то же самое с шаблонами Editor. Затем вы можете адаптировать каждый вид к различным каналам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...