Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从控制器中的URL获取原始参数_Url_Asp.net Mvc 4_Parameters - Fatal编程技术网

如何从控制器中的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获取原始参数

谢谢,
Hans

URL中的所有查询字符串参数值都需要进行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
    将散列编码回其原始格式