【问题标题】:Can I have a default.aspx page in an MVC site?我可以在 MVC 站点中有一个 default.aspx 页面吗?
【发布时间】:2014-02-07 10:08:51
【问题描述】:

我有一个带有 Default.aspx 页面的旧版 WebForms 站点,该页面在 IIS 中配置为默认页面。所以当有人去mysite.com他们看到mysite.com/Default.aspx,但地址栏中的url只显示mysite.com

我将 MVC 添加到该站点,并且我想逐步将功能移至 MVC。一切正常,但它破坏了根页面:导航到路由导致 404,因为默认路由匹配根并尝试路由 Home 控制器,但没有。所以我添加了一个这样做的:

' GET: /Home
Function Index() As ActionResult
    'jump to the go page
    Return Redirect("/default.aspx")
End Function

这现在可以工作了,只是当您导航到该路线时,它会在地址栏中显示mysite.com/Default.aspx

如果有,我希望:

  • 我无法匹配根路由,让 WebForms Default.aspx 页面像以前一样处理它
  • 我可以像现在一样进行路由,但要让它不在地址栏中显示 Default.aspx 页面。

这两种可能吗?

【问题讨论】:

    标签: asp.net-mvc webforms


    【解决方案1】:

    有可能。

    在您的路由配置中,删除默认参数中的控制器。 从此:

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
    

    到这里:

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { action = "Index", id = UrlParameter.Optional }
    );
    

    然后将Default.aspx 添加到您的项目根目录

    【讨论】:

    • 完美运行。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-26
    • 1970-01-01
    相关资源
    最近更新 更多