为什么MVC Controller"返回Redirect"解码我编码的双引号?

时间:2017-04-13 05:24:27

标签: c# asp.net asp.net-mvc

我有一个重定向用户的控制器。我在URL中添加了一个查询字符串,但我注意到浏览器中的最终URL正在解码我的双引号。因此,它在我的网址中显示双引号。有没有办法保持URL编码,所以它显示%22?

return Redirect(Url.Action("Index", "Search") + "?t=%22test%22");

浏览器中的网址显示?t =" test"。任何人都知道为什么会这样吗?我试图对它进行双重编码,但这会产生错误信息。谢谢!

1 个答案:

答案 0 :(得分:0)

你可以试试这个

return Redirect(Url.Action("Index", "Search",new {t= "%22test%22" }) );

这将创建URL,例如%2522test%2522此处%25表示%,因此您可以执行此操作

string str="%2522test%2522" //you will get this from URL
var value= HttpUtility.UrlDecode(HttpUtility.UrlDecode(str));

我使用了HttpUtility.UrlDecode两次,因为第一次它会给%22test%22,而第二次解码%22test%22时会得到"test"