AspNet会自动解码网址吗?

时间:2013-07-16 17:38:50

标签: asp.net-mvc

我使用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字符串吗?

1 个答案:

答案 0 :(得分:3)

如果我正确地回忆起我的MVC,你应该从客户端进行编码。控制器方法中的参数将期望清洁输入。我从来没有在控制器方法中解码。