使用 MVC URL 路由覆盖目录列表
最近,我部分转换了一个 Asp.Net Web 表单应用程序以使用 MVC。我们仍然在 Web 表单(.aspx 页面)中保留部分应用程序,并使用 MVC 路由来处理控制器等。 我添加了一个 MVC 路由,例如
routes.MapRoute("Users", "Users/{controller}/{action}/", new { controller = "Timesheet", action = "List" });
有一个名为“Users”的文件夹,其中包含一些我们仍在使用的 aspx 页面。 当我点击 URL http://localhost/Users/
时,我得到了“Users”文件夹内容的目录列表。显然,目录列表优先于 MVC url 路由,并且可以通过修改 IIS7 服务器设置来覆盖它。
我如何通过代码或 web.config 更改来覆盖此行为?
参考文献:
http://forums.asp.net/t/1251156.aspx/1
http://learn.iis.net/page.aspx/121/iis-7-and-above-modules-overview/
Recently, I partially converted an Asp.Net web forms application to use MVC. We still have parts of the application in web forms (.aspx pages) and use MVC routing to work with Controllers and such.
I added an MVC route like
routes.MapRoute("Users", "Users/{controller}/{action}/", new { controller = "Timesheet", action = "List" });
There is a folder called "Users" which contain a few aspx pages we still use.
When I hit the URL http://localhost/Users/
I get a directory listing of the contents of the "Users" folder. Apparently, the directory listing takes precedence over MVC url routing and this might be overridden by modifying the IIS7 server settings.
How could I override this behavior, via code or web.config changes?
References:
http://forums.asp.net/t/1251156.aspx/1
http://learn.iis.net/page.aspx/121/iis-7-and-above-modules-overview/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用此忽略路由:
列出 RegisterRoutes 方法
这将从路由中排除扩展名为“.aspx”的所有页面。
Use this ignoreroute:
Listing the RegisterRoutes method
This would exclude all pages whose extension is ".aspx" from routing.
在 RouteCollection 上设置 RouteExistingFiles=true 即可实现此目的。它将允许 ASP.NET MVC 处理现有目录的路由。
Setting RouteExistingFiles=true on the RouteCollection achieves just that. It will allow ASP.NET MVC to handle routes even for existing directories.