我可以在MVC站点中有一个default.aspx页面吗?

时间:2014-01-17 21:59:15

标签: asp.net-mvc webforms

我有一个遗留的WebForms网站,其中一个Default.aspx页面在IIS中配置为默认页面。因此,当有人转到mysite.com时,他们会看到 mysite.com/Default.aspx,但地址栏中的网址只会显示mysite.com

我在网站上添加了MVC,我希望逐步将功能转移到MVC。一切正常,但它打破了根页:导航到路由导致404,因为默认路由匹配根并尝试路由家庭控制器,但没有一个。所以我添加了一个这样做:

' 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页面。

这些都可能吗?

1 个答案:

答案 0 :(得分:2)

有可能。

在路由配置中,删除defaults参数中的控制器。 由此:

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添加到项目根目录