¿Es posible redirigir a una vista diferente desde un controlador?
Por ejemplo, todos mis controladores heredan de un controlador personalizado que tiene un constructor que quiero redirigir a una vista diferente si no se cumplen ciertos criterios. Espero que tenga sentido.
.net
asp.net
asp.net-mvc
Gavin
fuente
fuente
if (true) { return View(); } else { return View("another view name"); }
fuente
La forma más sencilla es usar return View.
return View("ViewName");
Recuerde, el nombre físico de "ViewName" debe ser algo así como ViewName.cshtml en su proyecto, si está utilizando MVC C # / .NET.
fuente
No estoy 100% seguro de cuáles son las condiciones para esto, pero para mí lo anterior no funcionó directamente, pensé que se acercó. Creo que fue porque necesitaba "id" para mi vista en el modelo que se llamaba "ObjectID".
Tenía un modelo con una variedad de datos. Solo necesitaba la identificación.
Antes de lo anterior, creé un nuevo objeto System.Web.Routing.RouteValueDictionary y agregué la identificación necesaria.
(System.Web.Routing.)RouteValueDictionary RouteInfo = new RouteValueDictionary(); RouteInfo.Add("id", ObjectID); return RedirectToAction("details", RouteInfo);
(Nota: el proyecto MVC en cuestión no lo creé, así que no sé dónde están todos los bits "complicados" correctos).
fuente
Esto es lo que puede hacer:
return View("another view name", anotherviewmodel);
fuente