【问题标题】:How do you set the startup page for debugging in an ASP.NET MVC application?如何在 ASP.NET MVC 应用程序中设置调试启动页?
【发布时间】:2009-08-26 07:46:37
【问题描述】:

如何在应用程序根目录开始调试应用程序?例如:http://localhost:49742/

我总是得到一个不存在的页面,例如: http://localhost:49742/Views/Home/About.aspx

请注意,可以从 http://localhost:49742/Views/Home/About

开始

【问题讨论】:

标签: asp.net-mvc


【解决方案1】:

转到项目的属性并设置起始页属性。

  1. 转到项目的属性
  2. 转到Web标签
  3. 选择特定页面单选按钮
  4. 特定页面文本框中输入所需的网址

【讨论】:

  • @Mark- 这是一个很好的链接,可以更详细地描述该过程-stephenwalther.com/blog/archive/2008/07/10/…。我会把它放在你的答案中。
  • +1 请务必在第 4 步中输入。使用 [...] 按钮进行选择将创建一个虚假 URL:D
  • 如果您只是在 VS.NET 2010 中测试和使用默认的 MVC 项目模板,只需清除起始页的任何值,然后调试您的项目。这将带您进入主要的“欢迎使用 ASP.NET MVC!”页面。
  • 除上述步骤外,还需要确保已正确选择启动PROJECT(如果您有多个项目,设置默认页面是不够的)。右键单击解决方案资源管理器中的项目并将其设置为启动项目。然后项目名称将在解决方案树中以粗体显示。
  • @Mark- 在第 4 步中,您可以将文本框留空,并确保选中“特定页面”单选按钮,它将在应用程序根目录开始调试。
【解决方案2】:

虽然您可以在 MVC 项目中拥有默认页面,但更常规的默认视图实现是使用默认控制器,通过“RegisterRoutes(...)”方法在 global.asax 中实现。例如,如果您希望 Public\Home 控制器成为您的默认路由/视图,代码将是:

    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
        );

    }

要使其正常运行,您需要在项目中设置一个起始页。

【讨论】:

  • 哇...即使在服务器上发布后,这实际上也可以工作(至少,对我而言,接受的答案并非如此)所以这是真正的好答案
  • 这是对该问题最有效的答案。谢谢
【解决方案3】:

这适用于 MVC 的特定页面:

/Home/Index

更新:目前,我只是在“特定页面”文本框中使用正斜杠,它会将我带到路由中定义的主页:

/

【讨论】:

  • 不错的简单答案。但请注意 - 如果您输入了与起始 URL 类似的内容,您仍然会收到无效的 URL 消息(即使当前未选择此消息)。所以选择 Start URL,删除其中的文本,然后将 Specific Page 属性设置为上面的相对路径。
【解决方案4】:

从项目属性中选择特定页面并不能解决我的问题。

在 MVC 4 中打开 App_Start/RouteConfig.cs

例如,如果您想将启动页面更改为登录

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

【讨论】:

    【解决方案5】:

    如果您想从描述的“应用程序根目录”开始,请右键单击顶级 Default.aspx 页面并选择设置为起始页面。按 F5 即可完成。

    如果您想从不同的控制器动作开始,请参阅 Mark 的回答。

    【讨论】:

    • 这适用于 MVC 吗?对我来说,它会尝试启动 ASPX 页面并且不会路由。
    【解决方案6】:

    重新访问此页面,我有更多信息要与他人分享。

    调试环境(使用 Visual Studio)

    1a) Stephen Walter 使用项目属性在 MVC 上设置启动页面的链接仅在您调试 MVC 应用程序时适用。

    1b) 在解决方案资源管理器中右键单击 .aspx 页面并选择“设置为起始页”行为相同。

    注意:在上述两种情况下,启动页设置只能被您的 Visual Studio 开发服务器识别。您部署的服务器无法识别它。

    部署环境

    2a) 设置启动页面,假设您没有更改任何默认路由,将/Views/Home/Index.aspx的内容更改为“Server.Transfer”或“Response.Redirect”到您想要的页面。

    2b) 将 global.asax.cs 中的默认路由更改为所需页面。

    还有其他读者知道的选项吗?以上哪一项(包括您自己的选择)是您首选的解决方案(请与我们分享原因)?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多