默认情况下,MVC3应用程序中_Layout.cshtml中的@RenderBody指向〜/ Views / Home / Index。
@RenderBody()
这是什么设置,如何将其更改为指向〜/ Views / Account / Logon?或者我想要的任何地方。感谢
答案 0 :(得分:1)
RenderBody默认不指向~/Views/Home/Index
。它呈现由执行的控制器操作返回的视图。因为在路由定义中的Global.asax中,默认操作被配置为索引,所以这个视图就会被渲染。
所以你要做的就是修改路由配置,以便默认操作是在帐户控制器上登录:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } // Parameter defaults
);
现在,当您导航到/
时,将执行Account
控制器的LogOn操作,该操作本身将呈现~/Views/Account/LogOn.cshtml
视图。
答案 1 :(得分:1)
它没有指向该视图,它只是呈现给出的视图
您的应用启动并转到路由上的默认操作,该操作可在Global.asax
如果您愿意,可以将其修改为默认为/Account/LogOn
public class MvcApplication : System.Web.HttpApplication {
public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start() {
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
答案 2 :(得分:0)
您应该使用@RenderPage
代替。请按照此link获取更多信息。