¿Es posible mostrar una vista desde otro controlador?
Digamos, por ejemplo, que tengo una CategoriesController
y una Category/NotFound.aspx
vista. Mientras CategoriesController
estoy en el , puedo regresar fácilmente View("NotFound")
.
Ahora digamos que tengo una ProductsController
y una acción y vista para agregar un producto. Sin embargo, esta acción requiere que tengamos una Categoría para agregar el Producto. Por ejemplo, Products/Add/?catid=10
.
Si no puedo encontrar la Categoría basada en catid
, quiero mostrar la NotFound
vista desde el controlador de Categorías en lugar de crear una CategoryNotFound
vista bajo el controlador de Productos.
¿Es esto posible o estoy estructurando las cosas de manera incorrecta? ¿Existe una forma correcta de hacer esto?
new ViewResult { ViewName = "~/Views/Error/Unauthorised.cshtml" };
y funcionóPuedes usar:
Fue probado en ASP.NET MVC 3, pero también debería funcionar en ASP.NET MVC 2.
fuente
"~/Views/Category/NotFound.cshtml"
.Si es posible. Devuelve un
RedirectToAction()
método como este:fuente
¿Lo has intentado
RedirectToAction
?fuente
Sí tu puedes. Devuelve una acción como esta:
Un ejemplo:
Este enfoque llamará al método GET
También podría pasar valores a acciones como esta:
fuente
También puede llamar a cualquier controlador desde JavaScript / jQuery . Supongamos que tiene un controlador que devuelve 404 o algún otro control / página de usuario. Luego, en alguna acción, desde su código de cliente, puede llamar a una dirección que activará su controlador y devolverá el resultado en formato HTML , su código de cliente puede tomar este resultado devuelto y colocarlo donde desee en su página ...
fuente
Con este código puede obtener cualquier controlador:
fuente