asp.net mvc - example - MVC5 Html.RenderAction con diferente controlador
render action razor (2)
Estoy empezando con MVC5 y creé el primer proyecto de MVC5 Getting Started .
Ahora intente con Representación parcial y agregue un método en MoviesController como se muestra a continuación
[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();
}
Establece el precio Mínimo y Máximo de la colección de Películas en ViewBag que luego se muestran en la vista. Estoy tratando de representarlo en diferentes vistas.
Primero intenté representarlo en Views/Movies/Index.cshtml
como se muestra a continuación
@{Html.RenderAction("PriceRange");}
Funciona bien allí y los resultados se muestran correctamente porque utiliza MoviesController
, la misma clase en la que se definió el método PriceRange
.
Luego intenté representarlo en Views/Hello/Index.cshtml
(esta vista usa HelloWorldController
) con el siguiente código (primero pasa el nombre de Action y luego el nombre de Controller)
@{Html.RenderAction("PriceRange", "MoviesController");}
Aquí está dando error en tiempo de ejecución
El controlador para la ruta ''/ HelloWorld / Index'' no se encontró o no implementa IController.
Aquí está el código completo de Views / Hello / Index.cshtml
@{
ViewBag.Title = "Movie List";
}
<h2>My Movie List</h2>
<p>Hello from our view template</p>
@{Html.RenderAction("PriceRange", "MoviesController");}
Encontré algunos ejemplos a través de Google, están llamando al ayudante de RenderAction de la misma manera, primero pasan el nombre de Action y luego el nombre de Controller.
No pude entender qué mal estoy haciendo aquí. ¿Alguien puede señalar?
El nombre del controlador debe ser "Películas" y no "MoviesController". Porque ahora creo que está buscando un controlador llamado "MoviesControllerController".
Es posible que esté agregando el postfix "Controlador" al nombre del controlador que no es necesario.
Tratar:
@{Html.RenderAction("PriceRange", "Movies");}