如何从控制器中的URL获取原始参数
我希望在控制器中正确填写哈希,但我的链接包含错误传递到控制器中的特殊字符:如何从控制器中的URL获取原始参数,url,asp.net-mvc-4,parameters,Url,Asp.net Mvc 4,Parameters,我希望在控制器中正确填写哈希,但我的链接包含错误传递到控制器中的特殊字符: localhost:51756/Account/ConfirmEmail?key=80d34666-f491-4fbd-821b-4a1e5608e710&hash=B4fcSyRuy/2j94sek8JMxr7+kDg=&newEmail=aGFuc3BvcHBlQGhvdG1haWwuY29t 我的控制器中的散列=B4fcSyRuy/2j94sek8JMxr7 kDg= public ActionR
localhost:51756/Account/ConfirmEmail?key=80d34666-f491-4fbd-821b-4a1e5608e710&hash=B4fcSyRuy/2j94sek8JMxr7+kDg=&newEmail=aGFuc3BvcHBlQGhvdG1haWwuY29t
我的控制器中的散列=B4fcSyRuy/2j94sek8JMxr7 kDg=
public ActionResult ConfirmEmail(string hash, string key, string newemail)
{
//do something.
}
“+”已在“”中更改。
有没有办法从我的url获取原始参数
谢谢,
HansURL中的所有查询字符串参数值都需要进行URL编码。您可以使用C#中的
System.Web.HttpUtility.UrlEncode(string)
方法,或者JavaScript中的encodeURIComponent(str)
方法来实现这一点
URL如下所示:
http://localhost:51756/Account/ConfirmEmail?key=80d34666-f491-4fbd-821b-4a1e5608e710&hash=2j94sek8JMxr7%2BkDg%3D&newEmail=agfuc3bvchblqghvdg1hawuy29t
正确编码+字符以使ASP.NET正确解码。由于+字符的URL编码版本为%2B(请参阅),链接将变成“…hash=B4fcSyRuy/2j94sek8JMxr7%2BkDg…”
您可以使用Url.encode
将散列编码回其原始格式