How do you set the startup page for debugging in an ASP.NET MVC application?

后端 未结 6 1897
伪装坚强ぢ
伪装坚强ぢ 2020-11-29 21:47

How do you start debugging the application at the application root? For example: http://localhost:49742/

I\'m always getting a page which doesn\'t e

相关标签:
6条回答
  • 2020-11-29 22:18

    While you can have a default page in the MVC project, the more conventional implementation for a default view would be to use a default controller, implememented in the global.asax, through the 'RegisterRoutes(...)' method. For instance if you wanted your Public\Home controller to be your default route/view, the code would be:

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Public", action = "Home", id = UrlParameter.Optional } // Parameter defaults
            );
    
        }
    

    For this to be functional, you are required to have have a set Start Page in the project.

    0 讨论(0)
  • 2020-11-29 22:21

    Revisiting this page and I have more information to share with others.

    Debugging environment (using Visual Studio)

    1a) Stephen Walter's link to set the startup page on MVC using the project properties is only applicable when you are debugging your MVC application.

    1b) Right mouse click on the .aspx page in Solution Explorer and select the "Set As Start Page" behaves the same.

    Note: in both the above cases, the startup page setting is only recognised by your Visual Studio Development Server. It is not recognised by your deployed server.

    Deployed environment

    2a) To set the startup page, assuming that you have not change any of the default routings, change the content of /Views/Home/Index.aspx to do a "Server.Transfer" or a "Response.Redirect" to your desired page.

    2b) Change your default routing in your global.asax.cs to your desired page.

    Are there any other options that the readers are aware of? Which of the above (including your own option) would be your preferred solution (and please share with us why)?

    0 讨论(0)
  • 2020-11-29 22:22

    Selecting a specific page from Project properties does not solve my problem.

    In MVC 4 open App_Start/RouteConfig.cs

    For example, if you want to change startup page to Login:

    routes.MapRoute(
            "Default", // Route name
            "",        // URL with parameters
            new { controller = "Account", action = "Login"}  // Parameter defaults
        );
    
    0 讨论(0)
  • 2020-11-29 22:28

    This works for me under Specific Page for MVC:

    /Home/Index
    

    Update: Currently, I just use a forward slash in the "Specific Page" textbox, and it takes me to the home page as defined in the routing:

    /
    
    0 讨论(0)
  • 2020-11-29 22:33

    If you want to start at the "application root" as you describe right click on the top level Default.aspx page and choose set as start page. Hit F5 and you're done.

    If you want to start at a different controller action see Mark's answer.

    0 讨论(0)
  • 2020-11-29 22:38

    Go to your project's properties and set the start page property.

    1. Go to the project's Properties
    2. Go to the Web tab
    3. Select the Specific Page radio button
    4. Type in the desired url in the Specific Page text box
    0 讨论(0)
提交回复
热议问题