【问题标题】:Does ASP.NET MVC Handle *#%":?<> Characters In The URL?ASP.NET MVC 是否处理 URL 中的 *#%":?<> 字符?
【发布时间】:2010-11-09 22:30:25
【问题描述】:

我是 ASP.NET MVC 的新手。当我在 URL 中使用这些字符 - *#%":?&lt;&gt; 时出现错误。

我的问题是 - ASP.NET MVC 是否处理 URL 中的 *#%":?&lt;&gt; 字符?

【问题讨论】:

  • 其实这不是一个 ASP.NET MVC 问题,不是吗?当特殊字符在 URL 中发送时,它们都是 URLEncoded。

标签: asp.net url encoding


【解决方案1】:

RFC 1738

因此,只有字母数字,特殊的 字符“$-_.+!*'(),”,并保留 用于保留的字符 用途可以在未编码的范围内使用 一个网址。

在您列出的字符中,理论上只有 * " 和 - 可以不编码使用。实际上,许多网站会对您列出的所有字符进行编码。

【讨论】:

    【解决方案2】:

    不,它不起作用,即使您对它们进行编码。

    这是 ASP.NET 中的一个愚蠢的限制。

    它们确实在查询字符串部分起作用,而不是在路径部分。

    【讨论】:

      【解决方案3】:

      看看this.。虽然它不能解决问题,但至少你知道你并不孤单:)

      【讨论】:

        【解决方案4】:

        看这里:http://www.w3schools.com/TAGS/ref_urlencode.asp

        如果您希望将字符作为普通字符传输,则必须对它们进行编码,因为它们在 url 中具有含义。

        【讨论】:

          【解决方案5】:

          在 url 参数中使用编码。 示例:

          javascript - window.location = 'path?parameter=' + encodeURIComponent(value);
          
          Razor - @Url.Action("Action", new { parameter=Uri.EscapeUriString(@value) })"
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-19
            • 2012-01-01
            • 2021-01-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多