vista una tutorial paso pasar net mvc modelo form ejemplo datos controlador conceptos asp asp.net asp.net-mvc views controllers

asp.net - tutorial - pasar datos de una vista a un controlador c#



Mostrar una vista desde otro controlador en ASP.NET MVC (7)

¿Has probado RedirectToAction ?

¿Es posible mostrar una vista desde otro controlador?

Digamos, por ejemplo, que tengo un Category/NotFound.aspx CategoriesController y una vista de Category/NotFound.aspx . Mientras estoy en el View("NotFound") CategoriesController , puedo devolver fácilmente la View("NotFound") .

Ahora diga que tengo un 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 vista NotFound desde el controlador de Categorías en lugar de crear una vista CategoryNotFound bajo el controlador de Productos.

¿Es esto posible o estoy estructurando las cosas de manera incorrecta? ¿Existe una forma correcta de hacer esto?


Con este código podrás obtener cualquier controlador:

var controller = DependencyResolver.Current.GetService<ControllerB>(); controller.ControllerContext = new ControllerContext(this.Request.RequestContext, controller);


Puedes usar:

return View("../Category/NotFound", model);

Se probó en ASP.NET MVC 3, pero también debería funcionar en ASP.NET MVC 2.


Sí tu puedes. Devuelve una acción como esta:

return RedirectToAction("View", "Name of Controller");

Un ejemplo:

RedirectToAction("Details/" + id.ToString(), "FullTimeEmployees");

Este enfoque llamará el método GET

También podrías pasar valores a acciones como esta:

RedirectToAction("Details/" + id.ToString(), "FullTimeEmployees", new {id = id.ToString(), viewtype = "extended" );


Sí. De forma predeterminada, ASP.NET MVC verifica primero en /Views/[Controller_Dir]/ , pero después de eso, si no encuentra la vista, verifica en /Views/Shared .

El directorio compartido está allí específicamente para compartir vistas a través de múltiples controladores. Solo agrega tu vista al subdirectorio Compartido y listo.

Si return View("~/Views/Wherever/SomeDir/MyView.aspx") , puede devolver cualquier vista que desee.


Si es posible. Devuelve un método RedirectToAction() como este:

return RedirectToAction("ActionOrViewName", "ControllerName");


También puede llamar a cualquier controlador desde JavaScript / jQuery . Digamos que tiene un controlador que devuelve 404 o algún otro control de usuario / página. Luego, en alguna acción, desde su código de cliente, puede llamar a alguna 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 ...