【问题标题】:Allowing encoded characters in an MVC Get允许 MVC Get 中的编码字符
【发布时间】:2015-05-16 09:56:14
【问题描述】:

我有一个 MVC 控制器,方法如下

    [HttpGet]
    public ActionResult Image(int image, string message)
    {

我希望这是一个 GET,因为它是用于我正在实施的方法的合适动词。

我想提供“这行得通吗?”作为方法的参数。显然这是行不通的:

http://localhost:55197/Controller/Image/3/Does%20this%20work?

问号被视为查询字符串的一部分并被删除。我读过this question,它建议将问号编码为%3F,这对我来说很有意义(毕竟我们对空间进行了编码)。但是,当我使用此查询字符串调用该方法时:

http://localhost:55197/Controller/Image/3/Does%20this%20work%3F

我明白了

从 客户(?)。

我读过 this question 建议使用 [AllowHtml] 属性,但这只能用于属性(因此更适合 POST 请求。

我怎样才能传递这样的字符串:

这行得通吗?

我想是的……

进入这个方法?

【问题讨论】:

    标签: asp.net-mvc escaping


    【解决方案1】:

    web.config 文件中尝试以下代码:-

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

    【讨论】:

    • 这似乎很激烈,您能否详细说明关闭所有请求的验证的安全隐患!?
    • @Liath..嗯是的......你必须在 web.config 中指定设置,如上所示......没有其他选项。
    猜你喜欢
    • 2010-11-30
    • 2021-01-23
    • 2012-05-14
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    相关资源
    最近更新 更多