如果我有一个控制器并且我想根据我的条件逻辑返回一个视图,那可能吗?我有不同类型的模型,我想插入到视图中依赖于我的条件逻辑(if语句)我可以这样做吗?我将如何做到这一点
答案 0 :(得分:16)
当然,返回View()接受视图名称作为其第一个参数。只需指定一个不同的视图。
如果您有不同的模型进入同一视图,请尝试合并它们,创建容器模型(每个模型类型一个属性,然后是枚举,以便视图知道要渲染的内容),使用动态作为在视图中建模,或为每个模型创建一个视图。
第一个和最后一个是我的首选,但这取决于细节。
答案 1 :(得分:2)
您可以在控制器中执行类似的操作(这是查看用户是否已经过验证的示例)
if (Request.IsAuthenticated)
return View("View1", new AuthenticatedViewModel(myValues1));
else
return View("View2", new AnonymousViewModel(myValues2));