【发布时间】:2010-11-09 22:30:25
【问题描述】:
我是 ASP.NET MVC 的新手。当我在 URL 中使用这些字符 - *#%":?<> 时出现错误。
我的问题是 - ASP.NET MVC 是否处理 URL 中的 *#%":?<> 字符?
【问题讨论】:
-
其实这不是一个 ASP.NET MVC 问题,不是吗?当特殊字符在 URL 中发送时,它们都是 URLEncoded。
我是 ASP.NET MVC 的新手。当我在 URL 中使用这些字符 - *#%":?<> 时出现错误。
我的问题是 - ASP.NET MVC 是否处理 URL 中的 *#%":?<> 字符?
【问题讨论】:
因此,只有字母数字,特殊的 字符“
$-_.+!*'(),”,并保留 用于保留的字符 用途可以在未编码的范围内使用 一个网址。
在您列出的字符中,理论上只有 * " 和 - 可以不编码使用。实际上,许多网站会对您列出的所有字符进行编码。
【讨论】:
不,它不起作用,即使您对它们进行编码。
这是 ASP.NET 中的一个愚蠢的限制。
它们确实在查询字符串部分起作用,而不是在路径部分。
【讨论】:
看看this.。虽然它不能解决问题,但至少你知道你并不孤单:)
【讨论】:
看这里:http://www.w3schools.com/TAGS/ref_urlencode.asp
如果您希望将字符作为普通字符传输,则必须对它们进行编码,因为它们在 url 中具有含义。
【讨论】:
在 url 参数中使用编码。 示例:
javascript - window.location = 'path?parameter=' + encodeURIComponent(value);
Razor - @Url.Action("Action", new { parameter=Uri.EscapeUriString(@value) })"
【讨论】: