'&' 字符中断查询字符串

Nat*_*kin 0 .net c# special-characters query-string

我有一个页面根据查询字符串的值执行一些操作。但是我最近注意到,当查询字符串包含“&”字符时,这会中断。

我知道我可以编写一些代码来翻译父页面上的“&”字符,但我必须相信有更好的方法来做到这一点。

这是一个示例:查询字符串:运动科学与体育研究 这仅返回“运动科学”

这是我必须获取字符串的代码:

string selectedDept = Request.QueryString [ "dept" ];
Run Code Online (Sandbox Code Playgroud)

我不想加密 URL,因为页面有时会直接链接到。

Car*_*z T 5

您不需要加密,您需要在生成 Url 之前对字符串进行编码。

如果您使用的是 MVC,您可以使用:

var url = "dept=" + Url.Encode(strDept);
Run Code Online (Sandbox Code Playgroud)

否则你也可以使用:

var url = "dept=" + HttpUtility.UrlEncode(strDept);
Run Code Online (Sandbox Code Playgroud)

更新

不幸的是,这将生成一个丑陋的 URL:

dept=Exercise%20Science%20%26%20Sports%20Studies
Run Code Online (Sandbox Code Playgroud)