model mvc c#
Cómo configurar condicionalmente un modelo en asp.net MVC view? (2)
Puedes intentar usar Interface
.
public interface INavigation
{
//Your props here
}
public class ServicesNavigation : INavigation
{
}
public class HomeNavigation: INavigation
{
}
Entonces su vista puede ser de tipo INavigation.
@model INavigation
Y en su controlador según sus condiciones, puede pasar la impedancia de INavigation
que desee.
.......
INavigation model;
if(conditionOneIsMet)
{
model = new ServicesNavigation();
}
else
{
model = new HomeNavigation();
}
return View(model);
Soy un principiante en ASP.NET MVC.
Mi página tiene una vista parcial llamada _Navegación que estoy reutilizando.
Si el usuario está en "Inicio", <a>
de la navegación debe apuntar al carácter "#", si el usuario está en la página "Servicios", el href de la navegación debe apuntar a otra URL, vamos a di "www.misitio.com". Ocurrirá con otros enlaces en este menú también.
Traté de hacer lo siguiente
@if (ViewContext.RouteData.Values.ContainsValue("Services"))
{
@model MySite.Models.ServicesNavigation
}
else
{
@model MySite.Models.HomeNavigation
}
Pero dice que puedo tener solo un modelo.
¿Cómo resolverlo?
Su vista es de hecho una clase derivada de la clase WebViewPage<TModel>
. La declaración @model
define el tipo de modelo ( TModel
). Debido a que es la declaración de tiempo de compilación, no puede cambiarla en tiempo de ejecución.
Si necesita dos modelos diferentes, debe tener dos vistas diferentes.