【发布时间】:2014-10-15 06:15:41
【问题描述】:
当我在 ASP.NET MVC 3 项目中单击以编辑具有此 URL 的用户时遇到问题:
http://domain.com:8089/User/EditUser/username.surname?IDUser=e11a621p-df11-4687-9903-8bfc33c922cf
如果我得到另一个没有“。”的用户字符,它工作正常。
错误:
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
我尝试了一些在这里找到的技巧,例如:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
和:
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true" />
以及edituser操作上的这个属性:
[ValidateInput(false)]
但似乎没有任何效果。此站点托管在 IIS 服务器上,当它在 Windows Azure 网站上时,它按预期工作。
谢谢。
【问题讨论】:
-
尝试用
%2E转义点:http://domain.com:8089/User/EditUser/username%2Esurname?IDUser=e11a621p-df11-4687-9903-8bfc33c922cf -
@DStanley 不过,它不是必需的;
-
参见stackoverflow.com/questions/2831142/… - 尝试在
<httpRuntime>上设置requestPathInvalidCharacters值。在这里,我们使用""- 但请注意:您需要小心一点;我似乎记得为我们工作(并继续工作)很尴尬,虽然 -
@MarcGravell 也许不是(只是猜测),但它可能会阻止运行时尝试将其解释为文件扩展名或其他含义。
-
@DStanley 可以,不过 - for example here,这是 IIS 中的 MVC。
标签: c# asp.net .net asp.net-mvc url