【问题标题】:Default Controller route on MVC project is breaking the default route for the applicationMVC 项目上的默认控制器路由破坏了应用程序的默认路由
【发布时间】:2016-04-04 10:47:25
【问题描述】:

我有一个项目,它有一个经典 ASP 文件 (login.asp) 的默认页面,所以如果你键入 --> www.xxxxxx.com,你将登陆登录页面。 现在我们尝试使用 MVC 架构升级项目。 MVC项目上的路由如下:

routes.MapRoute(name:="DataDownload", url:="download/data-download", defaults:=New With {.controller = "DataDownload", .action = "DownloadXR"})
routes.MapRoute(
   name:="Default",
   url:="{controller}/{action}/{id}",
   defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional}
)

现在问题是我的默认网址 www.xxxxxxx.com 已停止工作。它没有将默认登录页面设置为 login.asp。 如果我从路由配置中删除默认路由,则下载/数据下载停止工作,但 www.xxxxxxx.com 开始将页面重定向到 login.asp ..我不确定如何处理 MVC 项目中的默认控制器。

---谢谢

【问题讨论】:

  • 如果您的项目是 .net MVC 和 Classic ASP 的混合体,那么我建议您考虑使用 web.config 和 url 重写模块进行自定义路由,而不是在 MVC 中进行。看到这个iis.net/learn/extensions/url-rewrite-module/…

标签: asp.net asp.net-mvc routes asp.net-mvc-routing


【解决方案1】:

如果我理解正确,你只是想忽略MVC路由中的默认路由,所以你应该在主页添加一个IgnoreRoute

' Ignore the default route http://www.xxxxxxx.com/
routes.IgnoreRoute(url:="")

routes.MapRoute(name:="DataDownload", url:="download/data-download", defaults:=New With {.controller = "DataDownload", .action = "DownloadXR"})
routes.MapRoute(
   name:="Default",
   url:="{controller}/{action}/{id}",
   defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional}
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 2016-10-07
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 2014-09-20
    相关资源
    最近更新 更多