繁体   English   中英

将@RenderBody更改为指向不同的View MVC3

[英]Change @RenderBody to point to different View MVC3

默认情况下,MVC3应用程序中_Layout.cshtml中的@RenderBody指向〜/ Views / Home / Index。

  @RenderBody()

这个集合在哪里,如何将其更改为指向〜/ Views / Account / Logon? 或者我想要的任何地方。 谢谢

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视图。

它并没有指向那个视图,它只是呈现它给出的视图

您的应用程序启动并转到路由上的默认操作,该操作可在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);
    }
}

你应该使用@RenderPage 请点击此链接获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM