_ViewStart.cshtml运行于每一Page前, 所以通常在这里先设置Layout
下面代码为特定的controller指定Index,Edit,Create的模板
即Index对应 _Index_Layout, Edit对应_Index_Layout...
@{
var controller = ViewContext.RouteData.Values["controller"].ToString().ToLower();
var action = ViewContext.RouteData.Values["action"].ToString().ToLower();
string[] lController = new string[] { "user", "news", "mail" };
string[] lAction = new string[] { "index", "edit", "create" };
if (lController.Contains(controller)){
if (lAction.Contains(action))
{
Layout = "~/Views/Shared/_" + action + "_Layout.cshtml";
}else if (action == ""){
Layout = "~/Views/Shared/_Index_Layout.cshtml";
}
}
}