MVC Html.Частичный или Html.Действие
Я новичок asp.net MVC поэтому, пожалуйста, потерпите меня. Мне нужно создать меню, которое повторяется через несколько представлений. Что бы лучше послужило цели Html.Action или Html.Partial.
2 ответов:
вот что я считаю своими рекомендациями по использованию Html.Действие или Html.Частичный
Html.Частичный
- использовать
Html.Partialпри рендеринге статического содержимого или,- если вы собираетесь передать данные из ViewModel, который отправляется в главное представление
Html.Действие
- использовать
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