asp.net mvc配置.html的url映射问题

George-Henry 2016-01-23 09:20:48
各位.net大神求助啊~asp.net中的RouteConfig.cs文件下的路由配置默认为:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

现在我配置成:
routes.MapRoute("Default2", "{A}/{B}.html",
new { controller = "Home2", action = "Index"});

目的是为了将发往A/B.html的请求由Home2的index处理,但是这样配置一直是404错误,如下图:



根据网上的回答,我在web.config中的<system.webServer>中加入
<modules runAllManagedModulesForAllRequests="true" />还是不行,将iis的应用程序连接池改为集成模式也是不行,改过iis中的处理程序映射(在其中添加了.html的脚本映射都是不行),但是我将上面的url:{A}/{B}.html改为{A}/{B}就是可以的,郁闷啊,现在是将A/B映射到Home2的index处理是可以的,将A/B.html就不行~有谁能给个解答吗?
...全文
411 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
牧原 2017-11-27
  • 打赏
  • 举报
回复
default mapRoute: {controller}/{action}/{id}.html 在MVC3可以,MVC4以上要在web.config中加入第三行即可:  <system.webServer>     <validation validateIntegratedModeConfiguration="false" />     <modules runAllManagedModulesForAllRequests="true" />
牧原 2017-11-27
  • 打赏
  • 举报
回复
 <system.webServer>     <validation validateIntegratedModeConfiguration="false" />     <modules runAllManagedModulesForAllRequests="true" />   在web.config中加入第三行即可,来自:http://blog.csdn.net/gulijiang2008/article/details/39890675
George-Henry 2016-01-26
  • 打赏
  • 举报
回复
引用
引用 3 楼 dream_successor 的回复: 引用 B指的是 action名字,而不是你的 网页名称。 那我要映射到.html等静态文件该怎么做啊? 用户访问mvc网站,是先跑到action,然后action才返回了view视图。所以 不存在用户访问 .html的网页,然后调用action。(这样是本末倒置的。) 如果action跳转到.html的话,redict就可以了。 当然,如果你一定要这么干,那么你可以再html页面的Load加载时,ajax请求action,去做一些操作。并返回一些结果。
我是要做一个反向代理,将请求的.html页面映射到mvc的action里处理完毕后再发往真正的请求地址,所以我自己的服务器并不存在这个.html文件,因此在浏览器上输入这个url老是返回404~这应该是默认的iis将.html当成静态文件来处理了,郁闷~
正怒月神 版主 2016-01-26
  • 打赏
  • 举报
回复
引用 3 楼 dream_successor 的回复:
引用
B指的是 action名字,而不是你的 网页名称。
那我要映射到.html等静态文件该怎么做啊?
用户访问mvc网站,是先跑到action,然后action才返回了view视图。所以 不存在用户访问 .html的网页,然后调用action。(这样是本末倒置的。) 如果action跳转到.html的话,redict就可以了。 当然,如果你一定要这么干,那么你可以再html页面的Load加载时,ajax请求action,去做一些操作。并返回一些结果。
George-Henry 2016-01-26
  • 打赏
  • 举报
回复
引用
B指的是 action名字,而不是你的 网页名称。
那我要映射到.html等静态文件该怎么做啊?
正怒月神 版主 2016-01-25
  • 打赏
  • 举报
回复
B指的是 action名字,而不是你的 网页名称。
编程有钱人了 2016-01-25
  • 打赏
  • 举报
回复
MVC 的路由机制 可以在 routes.MapRoute改地址重写

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧