ice*_*pon 5 model-view-controller asp.net-mvc-3
在我的MVC项目中有2个区域,即Admin和Client,我需要为客户端动态配置Layout,在_ViewStart(在客户端)文件中将为所有客户端页面设置布局.
Layout = "~/Views/Shared/_Layout.cshtml";
Run Code Online (Sandbox Code Playgroud)
那么如果我们需要更改客户端布局,我们可以在_ViewStart文件中更改cshtml文件的布局路径吗?我无法找到如何更改ViewStart文件内部或在这种情况下是否有另一种解决方案.
谢谢你的帮助 :)
Bra*_*tie 11
请记住,其中的任何内容@{ ... }都被视为代码.因此,在那里放置一个条件来改变它的继承方式应该是一个简单的问题:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
if (User.Current.IsAuthenticated) {
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
}
Run Code Online (Sandbox Code Playgroud)
虽然你可以更好地看待主题(并有一个管理员/用户主题).或者,您可以让自己_Layout.cshtml更聪明,并根据条件处理不同的视图.
另请参阅:MVC3 Razor - 有没有办法根据浏览器请求更改布局?
您的问题没有足够的信息来为您提供完整的代码示例.
但基本上你可以做到这一点
if (InsertIsAdminLogicHere) {
Layout = "~/Views/Shared/_AdminLayout.cshtml";
} else {
Layout = "~/Views/Shared/_Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)
如果您向我们展示您是否如何确定管理员,我们可以提供更多帮助.
希望这可以帮助