我如何从Controller中的URL获取Raw param

时间:2013-03-06 08:57:56

标签: 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 ActionResult ConfirmEmail(string hash, string key, string newemail)
    {
         //do something.
    }

'''已更改''。 Annyone有想法从我的网址获取原始参数吗?

谢谢, 汉斯

2 个答案:

答案 0 :(得分:0)

URL中的所有查询字符串参数值都需要进行URL编码。您可以使用C#中的System.Web.HttpUtility.UrlEncode(string)方法或JavaScript中的encodeURIComponent(str)方法来执行此操作。

网址如下:

http://localhost:51756/Account/ConfirmEmail?key=80d34666-f491-4fbd-821b-4a1e5608e710&hash=2j94sek8JMxr7%2BkDg%3D&newEmail=aGFuc3BvcHBlQGhvdG1haWwuY29t

答案 1 :(得分:0)

嗯,你可以做两件事:

  1. 您正确编码+字符以使ASP.NET正确解码。由于+字符的URL编码版本为%2B(请参阅link),链接将变为“... hash = B4fcSyRuy / 2j94sek8JMxr7%2BkDg ...”

  2. 使用Url.Encode将哈希值编码回原始格式。