Bri*_*ian 113 asp.net-mvc asp.net-mvc-3
我有一个遗留代码问题,需要我支持随机网址,就好像它们是对主页的请求一样.某些URL中包含的字符会生成错误"从客户端(&)检测到潜在危险的Request.Path值".该站点使用ASP.Net MVC 3(在C#中)编写,并在IIS 7.5上运行.
这是一个示例URL ...
http://mywebsite.com/Test123/This_&_That
Run Code Online (Sandbox Code Playgroud)
这是我如何设置我的全部路线(我有其他路线来捕捉特定页面)......
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)
我在web.config文件中添加了以下内容...
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
Run Code Online (Sandbox Code Playgroud)
我还在应该捕获URL的操作中添加了ValidateInput属性...
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
但我仍然得到错误.有什么想法吗?我错过了什么?现在我只是在我的本地开发服务器上运行(我还没有在生产中尝试过这些修复).
Ale*_*yev 162
虽然您可以在配置文件中尝试这些设置
<system.web>
<httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" />
<pages validateRequest="false" />
</system.web>
Run Code Online (Sandbox Code Playgroud)
我会避免在URL路径中使用像'&'这样的字符,用下划线替换它们.
我遇到过这种类型的错误.从剃刀调用一个函数.
public ActionResult EditorAjax(int id, int? jobId, string type = ""){}
Run Code Online (Sandbox Code Playgroud)
通过改变线来解决这个问题
从
<a href="/ScreeningQuestion/EditorAjax/5&jobId=2&type=additional" />
Run Code Online (Sandbox Code Playgroud)
至
<a href="/ScreeningQuestion/EditorAjax/?id=5&jobId=2&type=additional" />
Run Code Online (Sandbox Code Playgroud)
我的route.config是哪里
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new string[] { "RPMS.Controllers" } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
179246 次 |
| 最近记录: |