如何在MVC路由中启用特殊字符?

时间:2012-12-23 08:22:43

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

我正在使用asp.net MVC 4。

这些是我的路线:

        routes.MapRoute(
         name: "Default",
         url: "{controller}/{action}/{id}"
         );

我当前的控制器正确响应以下请求:

http://localhost:2020/PrivacyUrls/Details/ct14524

如何验证这些网址?

http://localhost:2020/PrivacyUrls/Details/*ct14524

http://localhost:2020/PrivacyUrls/Details/&ct14524

现在返回404。

从客户端(*)检测到潜在危险的Request.Path值。

从客户端(&)检测到潜在危险的Request.Path值。

我想添加这条路线,但没有帮助:

       routes.MapRoute(
         "PivacyUrl/Details",
         "PrivacyUrls/Details/{*ctid}",// URL with parameters 
         new { controller = "PrivacyUrls", action = "Details" }
         );

2 个答案:

答案 0 :(得分:9)

在web.config中:

<system.web>
    <httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" />
    <pages validateRequest="false" />
</system.web>

https://stackoverflow.com/a/6026291/299408

公然被盗

答案 1 :(得分:0)

答案对我不起作用。我不得不使用:

[ValidateInput(false)]
public ActionResult Index...

希望这有助于其他人。