首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >URL + IIS7 + FireFox : ASP.NET中的尾部斜杠

URL + IIS7 + FireFox : ASP.NET中的尾部斜杠
EN

Stack Overflow用户
提问于 2010-01-27 03:09:44
回答 3查看 2.2K关注 0票数 18

注意:我花了几个小时寻找答案,但没有找到。

我有一个托管在IIS7 (集成模式)上的ASP.NET MVC (2.0)应用程序。

当向/Toons/List -I发出GET请求时,会得到一个到/Toons/List/的重定向(302),这是预期的。

THE PROBLEM

但是当我发送一个POST请求时,告诉/Toons/Add (注意后面没有斜杠)服务器返回,同样,重定向(302)到/Toons/Add/。此时,FireFox错误地将GET请求发送到该重定向URL。也就是说,用[GET] /Toons/Add/代替[POST] /Toons/Add/。这是不正确的,但已知的行为。因为在/Toons/Add/上没有GET -I get resource not found (404)。

我用webhost4life托管我的应用程序,无法访问IIS7,这限制了我使用网址重写和使用模块(我正在与他们合作解决这个问题)。但即便如此,ISAPI是最好的选择吗?我对此还不是很了解,不会觉得这样做很好。

这是一个常见的问题,我很惊讶我找不到一个简单的解决方案。

有没有不需要使用.aspx / .mvc后缀和重写网址的解决方案?

在这两个中,如果必须的话,我应该选择哪一个?

有什么想法/建议吗?

编辑

我读过http://www.hanselman.com/blog/ASPNETMVCAndTheNewIIS7RewriteModule.aspx,正如我所说的,我正在努力寻找一个更简单的解决方案,一个“只工作”的选项。

编辑

我已经看到了在每个网址后附加斜杠(/)的解决方案,同样,似乎不是最优雅的解决方案。

EN

回答 3

Stack Overflow用户

发布于 2011-08-04 23:44:01

链接时,您应该使用实际的URL/路由。如果由于宿主环境或MVC框架2.0版本的限制而无法从路由中删除斜杠,则需要在URL中包含尾部斜杠。

依赖服务器重定向每个URL将增加服务器处理时间和页面加载时间。

票数 1
EN

Stack Overflow用户

发布于 2011-07-24 06:15:57

您能告诉IIS返回307而不是302吗?

票数 0
EN

Stack Overflow用户

发布于 2011-08-04 22:31:39

您是否在控制器中设置了接受post HttpVerbs的操作方法?您还可以尝试在控制器中为/Toons/Add设置一个路由,这样MVC就不会将它读取为/ Global.asax /Method/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2141883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档