我有一个MVC3 Action,它接受一个可能包含查询字符串的参数(URL)。我的动作签名如下:
GetUrl(string url)
我希望能够发送它的网址,除非网址中有查询字符串,否则它每次都有效。例如,如果我导航到:
MyController/GetUrl/www.google.com
url参数与“www.google.com” - 完美相对应。但是,如果我发送 myController的/使用getURL / www.google.com /?ID = 3 url参数与“www.google.com/”相同如何让MVC3在该参数中为我提供整个网址? - 包括查询字符串?
答案 0 :(得分:1)
那是因为系统将id = 3视为自己的查询字符串。在视图中构造链接时,需要使用@ Url.Encode将原始url字符串转换为编码字符串,以接受为控制器的参数。
答案 1 :(得分:1)
简单到URL.Inncode在页面上传入的URL,但你正在打开一些可能的安全问题。
我建议您对网址进行加密,然后对其进行编码,然后将其作为您的值传递,保护您不会让人们将任何内容传递到您的应用中。