获取“从客户端(&)检测到潜在危险的Request.Path值”
我有一个遗留的代码问题,需要我支持随机的url,就好像它们是对主页的请求一样。 某些URL中包含字符,会生成错误“从客户端(&)检测到潜在危险的Request.Path值” 。 该网站是用ASP.Net MVC 3(在C#中)编写的,并在IIS 7.5上运行。
这是一个示例url…
http://mywebsite.com/Test123/This_&_That
这里是我如何有我的所有路线设置(我有其他路线来捕捉特定页面)…
routes.MapRoute( "Default", // Route name "{garb1}/{garb2}", // URL with parameters new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults );
我已经将以下内容添加到我的web.config文件中…
<configuration> <system.web> <pages validateRequest="false" /> <httpRuntime requestValidationMode="2.0" /> </system.web> <configuration>
我也添加了ValidateInput属性的动作,应该赶上的url…
public class WebsiteController : Controller { [ValidateInput(false)] public ActionResult Home() { return View(); } }
但是我仍然得到错误。 任何想法为什么? 我错过了什么? 现在我只是在我的本地开发服务器上运行(我还没有在生产中尝试过这些修复)。
虽然你可以尝试在configuration文件中的这些设置
<system.web> <httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" /> <pages validateRequest="false" /> </system.web>
我会避免在URLpath中使用像'&'这样的字符来replace下划线。
我遇到了这种types的错误。 从剃刀调用一个函数。
public ActionResult EditorAjax(int id, int? jobId, string type = ""){}
通过改变线来解决这个问题
从
<a href="/ScreeningQuestion/EditorAjax/5&jobId=2&type=additional" />
至
<a href="/ScreeningQuestion/EditorAjax/?id=5&jobId=2&type=additional" />
我的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 );
如果你想允许Html标签仅用于mvc中的less数文本框
你可以做一件事
在控制器中
[ValidateInput(false)] public ActionResult CreateNewHtml() //view { return View(); } [ValidateInput(false)] [HttpPost] public ActionResult CreateNewHtml(cbs obj)//view cbs is database class { repo.AddHtml(obj); return View(); }
在试图找出为什么我们的Silverlight ArcGIS地图查看器不加载地图时,我们在Fiddler中得到了同样的错误。 在我们的案例中,这是代码中URL的拼写错误。 出于某种原因,在那里有一个等号。
HTTP:// = someurltosome /真棒/位
代替
HTTP:// someurltosome /真棒/位
拿出那个等号后,它工作得很好(当然)。