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

Posted

技术标签:

【中文标题】如何在 MVC 路由中启用特殊字符?【英文标题】:How do I enable special characters in MVC routing? 【发布时间】:2012-12-10 04:24:20 【问题描述】:

我正在使用 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" 
         );

【问题讨论】:

【参考方案1】:

在 web.config 中:

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

公然从https://***.com/a/6026291/299408盗取

【讨论】:

【参考方案2】:

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

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

希望这对其他人有所帮助。

【讨论】:

以上是关于如何在 MVC 路由中启用特殊字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何启用 EditText 以输入特殊字符,如 ~!#$%^&*()_-[]?和其他 app:endIconMode="password_toggle" 在android中

ASP MVC Razor 在输入占位符中编码特殊字符

MVC中过虑特殊字符检测

netcore 磊科无线路由为何不支持密码带有特殊字符?

为啥在 asp.net mvc 中的公共路由之前先映射特殊路由?

vue特殊字符怎么不转义