Как создать общий макет модели в Razor MVC? - PullRequest
11 голосов
/ 13 декабря 2011

Я пытаюсь дать модель для общего макета, чтобы ссылки меню создавались динамически из базы данных. Есть идеи, с чего мне начать?

Я ищу, может быть, учебники о том, как использовать наследование для этого?

1 Ответ

11 голосов
/ 17 декабря 2011

Вы можете сделать это:

Модель

public partial class Menu
{
    public String[] items;

    public Menu(String[] items)
    {
        this.items = items;
    }
}

Просмотр (_Menu)

@model YourMVC.Models.Menu

<ul>
    @foreach (String item in Model.items)
    {
        <li>@item</li>
    }
</ul>

Поместите это в _Layout

@Html.Action("_Menu", "Home")

Контроллер (HomeController)

public ActionResult _Menu()
{
    String[] items = {"Item1", "Item2", "Item3", "Item4"};

    return PartialView(new Menu(items));
}

Конечно, в вашей реальной реализации вы можете получить все, что вам нужно, из базы данных в действии контроллера _Menu().

Я не уверен, является ли эта реализация лучшей практикой, но она, безусловно, работает.

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