Change @RenderBody to point to a different view of MVC3

By default, @RenderBody in _Layout.cshtml in an MVC3 application points to ~ / Views / Home / Index.

  @RenderBody()

Where is this set and how to change it to point to ~ / Views / Account / Logon? Or wherever I want. Thanks

+5
source share
3 answers

He does not point to this view, he simply displays the view that he is given

Your application launches and proceeds to the default routing action, which can be found in Global.asax

You can change this default value to /Account/LogOnif you want

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);
    }
}
+1
source

RenderBody ~/Views/Home/Index. , , . Global.asax Index, .

, , , , " " ​​ :

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } // Parameter defaults
);

, /, LogOn Account, ~/Views/Account/LogOn.cshtml.

+1

Use instead @RenderPage. Follow this link for more information.

0
source

All Articles