Así que vi this question aquí en SO, pero realmente no me ha solucionado este problema.ASP.NET MVC 3 + Razor Error: las acciones secundarias no pueden realizar acciones de redirección
Tengo una aplicación ASP.NET MVC 3 + Razor ejecutándose en IIS5 en mi pc dev y luego IIS6 para mi servidor web dev. Todo funcionó de maravilla hasta que lo implementé. Estoy desplegando todo, sin problemas en ese frente (que puedo decir).
Ahora recibo este Las acciones secundarias no pueden realizar acciones de redirección error en mi página. No estoy seguro de cómo señalar dónde está fallando.
estoy usando @ Html.Action para tirar en algunos cuadros desplegables con los datos:
public ActionResult Hierarchy()
{
List<Store> storeList = DBService.getStores();
if (DBService.Error != null)
return RedirectToError(DBService.Error);
List<Department> deptList = DBService.getDepts();
if (DBService.Error != null)
return RedirectToError(DBService.Error);
VM_Hierarchy hierarchy = new VM_Hierarchy(storeList, deptList);
return View(hierarchy);
}
Si quito la línea @ Html.Action, la página se rinda. A continuación, se rompen si hago una petición AJAX a una acción de controlador como este:
[HttpPost]
public ActionResult InventoryList(string fromDate, string toDate)
{
List<Inventory> inventories = DBService.getInventories(fromDate, toDate);
if (DBService.Error != null)
return RedirectToAction("Error");
return View(inventories);
}
Si esto no es correcto, ¿cómo se supone para redirigir a una página de error o dictar lo que la vista es retornada en una ¿enviar? Cualquier ayuda es apreciada. Gracias.
Entonces, ¿es incorrecto asumir que la redirección ocurre en el servidor y solo está enviando el nuevo HTML de la página? No quiero redireccionar la página, solo ejecutar una acción diferente y enviar una vista diferente. – IronicMuffin
Bueno, la redirección de los controladores está en el servidor, el problema es que está redirigiendo desde una acción secundaria o llamada AJAX; en ambos casos, parte de una página ya existe y no puede hacer una redirección en el servidor. medio de una página. –
Supongo que no sigo. Me imagino que estoy obteniendo el HTML de la vista original o el HTML de una nueva vista para renderizar en la página. No veo dónde está el problema. ¿Supongo que enviaré javascript para los parciales?¿Cómo se elige cuál parcial cargar según lo que ocurre en el lado del servidor? – IronicMuffin