c# - with - mvc render
Error al ejecutar la solicitud secundaria para controlador a la vista (11)
Tengo una vista MVC 4 donde presento las siguientes acciones
@{
Html.RenderAction("Index", "Logo");
Html.RenderAction("Index", "MainMenu");
}
Tengo un formulario en mi vista que se completa y se publica en el controlador. En el controlador realizo algunas tareas y luego devuelvo el modelo a mi vista
[HttpPost]
public ActionResult Index(ManageAdministratorModel manageAdministratorModel)
{
// I save some of the fields to the database here.
return View(manageAdministratorModel);
}
Cuando me redirigen a la vista, recibo el siguiente error
Error al ejecutar la solicitud secundaria para el controlador ''System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper''.
en esta linea
Html.RenderAction("Index", "Logo");
¿Alguna idea de por qué está pasando esto?
Acabo de recibir este error en mi afeitadora cuando mi vista parcial tenía un error de formato de código.
Si hace clic en ''Continuar'' para pasar el error, verá el mensaje de error real en la ventana del navegador desde donde lo cargó.
¡Corrija el error en la vista parcial y funcionará!
Deshágase del diseño @{ Layout = null; }
@{ Layout = null; }
en la vista secundaria.
El ejemplo de "Child Action Only" es:
public class FiltersController : Controller
{
public ActionResult Index()
{
return View();
}
[ChildActionOnly]
public ActionResult Departments()
{
string s = "Mahi and kallu";
return View(s);
}
}
**for this am creating 2 views**
1) Index:
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@Html.Partial("Departments","Filters")
</body>
</html>
**and for Departments View:**
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Departments</title>
</head>
<body>
<div>
@Model
</div>
</body>
</html>
the ***childactions*** can be rendered with the help of "Partial" keyword.
Estaba enfrentando el mismo problema pero puse el atributo [HTTPGet] sobre el nombre de la función y funcionó para mí.
[HttpGet]
//for Filter parital view
[ChildActionOnly]
public ActionResult Filter()
{
// Your code will come here.
}
Esto me pasó a mí, porque estaba llamando a la vista desde diferentes áreas.
La vista a la que quería llamar no estaba dentro de un área, por lo que cuando se llama desde fuera de todas las áreas, una llamada como
@Html.RenderAction("Index", "Logo");
funcionaría sin problemas
Pero cuando quería que esa misma vista se llamara desde otra vista que estaba dentro de un área, tendría que agregar algo de información adicional a la llamada para hacerlo explícito:
@Html.RenderAction("Index", "Logo", new { area = "" });
Ok, encontré el problema, espero que esto ayude a alguien en el futuro.
Los controladores para las vistas parciales contenían cada uno el atributo [HttpGet]
. Por ejemplo
[HttpGet]
public ActionResult Index()
{
}
Elimino el atributo de ambos controladores
public ActionResult Index()
{
}
y todo ahora está funcionando.
Recibí este error, pero mi problema fue diferente. Para ver de qué se trata el error, involucre la línea que recibe el error dentro de un código try catch, como este:
try
{
@Html.RenderAction("Index", "Logo", new {id = Model.id});
}
catch (Exception e)
{
throw;
}
Ejecútelo con un punto de quiebre en la línea de tiro y verifique la excepción interna de la ''e''. Mi problema era que había cambiado el nombre del parámetro en mi Controlador y olvidé cambiarlo en mi Vista.
Es más fácil obtener el error con try catch.
Reemplazar:
return View(manageAdministratorModel);
con:
return PartialView(manageAdministratorModel);
de lo contrario, podría terminar en un bucle infinito porque está visualizando una vista que intenta renderizar una vista que intenta renderizar una vista, ...
También es posible que deba eliminar el atributo [HttpPost]
de su acción secundaria.
Tenía exactamente el mismo problema, y como estaba utilizando el enrutamiento de atributos, el mensaje de error interno de excepción fue:
No matching action was found on controller ''''.
This can happen when a controller uses RouteAttribute for routing,
but no action on that controller matches the request.
Elimina los atributos [HttpGet] de los métodos de acción llamados por Html.Action () y funciona. Nada que ver con el enrutamiento.
Tuve este problema, podría suceder porque el motor de renderización no puede encontrar ninguna vista (que corresponde al nombre que se da en acton). Había dado un nombre de vista incorrecto (equivocadamente había dado el nombre de la acción en lugar del nombre de la vista) cuando PartialView()
nombre de vista y modelo de vista utilizando el método PartialView()
, corregí el nombre de mi vista y funcionó bien
Yo tenía el mismo error. Comenzó cuando cambié una acción a otro controlador, por lo que al ejecutar el programa no pude encontrar la vista en la carpeta. Entonces, si mueve una acción a otro controlador, también mueva la vista al controlador de la carpeta respectiva .