2

我使用HttpUtility.UrlEncode(str).

我有一个通过 接收该字符串的方法GET,如下所示:

public ActionResult Confirm(string id)
{
    // ...
}

id是这样收到的编码字符串:

http://[mysite].com/[ctrler]/Confirm?id=[TheStringEncoded]

Confirm方法内部,我放了一个HttpUtility.UrlDecode(id),但随后它开始产生错误,因为 id 似乎已经解码。

asp.net 的默认行为是对这些参数进行 url 解码吗?我现在有点害怕它的使用,如果它根据某些服务器配置而改变(我想知道),如果一些生成的字符串需要解码而其他的不需要呢?我应该HttpUtility.UrlDecode在这里使用还是不使用?

PS:编码的字符串是base64。我可以在?id=没有的情况下传递那个base64字符串UrlEncode吗?

4

1 回答 1

3

如果我没记错我的 MVC,您应该从客户端进行编码。控制器方法中的参数将期望干净的输入。我从来不需要在控制器方法中解码。

于 2013-07-16T17:42:33.350 回答