MVC Html.Частичный или Html.Действие



Я новичок asp.net MVC поэтому, пожалуйста, потерпите меня. Мне нужно создать меню, которое повторяется через несколько представлений. Что бы лучше послужило цели Html.Action или Html.Partial.

569   2  

2 ответов:

вот что я считаю своими рекомендациями по использованию Html.Действие или Html.Частичный

Html.Частичный

  1. использовать Html.Partial при рендеринге статического содержимого или,
  2. если вы собираетесь передать данные из ViewModel, который отправляется в главное представление

Html.Действие

  1. использовать Html.Action когда вам действительно нужно получить дополнительные данные с сервера для заполнения частичный вид

в принципе, если статично, используйте Html.Partial(). Если динамические, независимые от модели данные, используйте Html.Action(). Есть, вероятно, больше сценариев, но это даст вам хорошее представление о том, куда и как идти. Html.RenderPartial() и Html.RenderAction() являются взаимозаменяемыми для одноименных функций выше.

Html.Частично: Render a Частичный Вид без удара действия контроллера в первую очередь. Смотрите:Частичный Вид

Html.Действие вызов Действие Контроллера, который может вернуть вид/частичный вид (или не может, он может бросить HttpNotFound или вернуть Json или другие вещи).

требуется ли для вашего меню модель представления или она статична?

если это статическое меню, Html.Partial будет соответствовать вашим потребностям. Поместите содержимое статического меню внутри частичного представления и вызовите Html.Partial где вы хотите его представить.

если меню генерируется из модели представления, вы можете использовать илиHtml.Partial или Html.Action:

связывание модели представления с помощью Html.Частичный:

public class MenuViewModel {
    // menu data goes here
}

public class GeneralViewModel : MenuViewModel {
    // general view info goes here
}

public ActionResult Index() {
    return View(new GeneralViewModel());
}

// View Code
@model GeneralViewModel
<div>@Html.Partial("_partialName", model)</div>

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

** Разделение модели с помощью Html.Действие:**

public ActionResult Index() {
    return View(new GeneralViewModel());
}

public ActionResult MenuView() {
    return PartialView(new MenuViewModel());
}

// View Code
@model GeneralViewModel
<div>@Html.Action("MenuView")</div>

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

Comments

    Ничего не найдено.