2013-12-18 4 views
1

Я новичок в MVC и только что узнал о частичных представлениях.Каковы преимущества отдельного контроллера на частичный просмотр в mvc 4?

Каковы различия/преимущества между отдельным контроллером на частичный вид и только один контроллер на просмотр (содержащий несколько частичных представлений)?

ответ

1

Некоторые определения

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

View - это страница, которую вы хотите показать пользователю, и она возвращается действием с контроллера.

Все .cshtml рассматривают asp.net mvc как вид, в зависимости от способа обработки объекта, он становится частично или нет. (Html.RenderPartial, метод контроллера PartialView и т. Д.).

Что вы можете сделать?

  • Иногда вам нужно возвращать только часть, и вы можете сделать это с помощью запроса асинхронной (с использованием ajax). В этих случаях вы используете действие, которое возвращает частичный вид.

  • Иногда вам нужно реализовать представление, в котором нужно добавить фрагмент кода, поэтому вы можете отобразить его с помощью Partial View.

  • У вас может быть вид внутри папки View/Shared, и этот вид может использовать частичный вид. Частичный вид может быть в определенной папке View. Для образца:

    • Просмотры
      • продукта
        • Item.cshtml // Частичный вид
      • общей
        • Index.cshtml // Просмотр

Содержание в файле Index.cshtml является:

<div> 
@Html.Partial("Item") 
</div> 

и у вас есть контроллер, как это:

public class ProductController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

Он найдет вид в продукт и не нашли, после того, как найдет в общей папке и рендере. В представлении в общей папке используется Partial View, поэтому контекст выполнения находится в Product, и он отобразит частичный вид Item.cshtml из Папки продуктов.

Если вы в контроллере этого:

public class ProductController : Controller 
{ 
    public ActionResult Index() 
    { 
     return PartialView(); 
    } 
} 

Он будет возвращать только процесс Index.cshtml без какой-либо страницы макета, потому что вы рассматривать его как частичный вид.

С его некоторыми преимуществами вы можете использовать Частичные виды.

Смежные вопросы