我使用HttpUtility.UrlEncode(str)
编码字符串。
我有一个方法通过GET
接收该字符串,如下所示:
public ActionResult Confirm(string id)
{
// ...
}
id
是这样收到的编码字符串:
的http:// [mysite的]的.com / [CTRLER] /确认ID = [TheStringEncoded]
在Confirm
方法内部,我放了一个HttpUtility.UrlDecode(id)
,然后它开始产生错误,因为id似乎已经解码了。
asp.net的默认行为是url解码这些参数吗?我现在有点害怕它的使用,如果它根据一些服务器配置而改变(我想知道),如果一些产生的字符串需要解码而其他人不需要?我可以在这里使用HttpUtility.UrlDecode
吗?
PS:编码的字符串在base64中。我可以在没有?id=
的{{1}}内传递base64字符串吗?
答案 0 :(得分:3)
如果我正确地回忆起我的MVC,你应该从客户端进行编码。控制器方法中的参数将期望清洁输入。我从来没有在控制器方法中解码。