Я начинаю с MVC5 и создаю первый проект из MVC5 Getting Started.
Теперь попробуйте с Partial Rendering и добавьте метод в MovieController, как показано ниже
[ChildActionOnly]
public ActionResult PriceRange()
{
var maxprice = db.Movies.Max(m => m.Price);
var minprice = db.Movies.Min(m => m.Price);
ViewBag.MaxPrice = maxprice;
ViewBag.MinPrice = minprice;
return PartialView();
}
Он устанавливает минимальную и максимальную цену из коллекции фильмов в ViewBag, которые позже отображаются в представлении. Я пытаюсь сделать это на разных представлениях.
Сначала я попытался отобразить его на Views/Movies/Index.cshtml
ниже
@{Html.RenderAction("PriceRange");}
Он хорошо работает, и результаты отображаются правильно, потому что он использует MoviesController
, тот же класс, где определяется метод PriceRange
.
Затем я попытался отобразить его в Views/Hello/Index.cshtml
(это представление использует HelloWorldController
) со следующим кодом (сначала передайте имя Action, затем имя контроллера)
@{Html.RenderAction("PriceRange", "MoviesController");}
Здесь дается ошибка во время выполнения
Контроллер для пути '/HelloWorld/Index' не найден или не реализует IController.
Вот полный код из Views/Hello/Index.cshtml
@{
ViewBag.Title = "Movie List";
}
<h2>My Movie List</h2>
<p>Hello from our view template</p>
@{Html.RenderAction("PriceRange", "MoviesController");}
Я нашел несколько примеров через Google, они называют хелпер RenderAction таким же образом, сначала передавая имя Action, а затем имя контроллера.
Я не мог понять, что я тут делаю. Может кто-нибудь указать?