繁体   English   中英

MVC2 ASP.Net URLDecoding是自动生成的吗?

[英]Is MVC2 ASP.Net URLDecoding automatically?

因此,我在MVC2中这样调用Controller,并且可以正常访问经典查询字符串。 请注意,第二个参数thing2已被URLEncoded再次检索URLEncoded查询字符串和URLDecoding没问题。 我的例子如下:

http://mydomain.com/controller?thing1=1544&thing2=somethingURLEncoded

现在,我尝试使用MVC2 ASP.Net处理参数的方法,并使自己成为一个不错的自定义MapRoute。 我对其进行了测试,以查看它是否可以通过简单的测试进行工作...

http://mydomain.com/controller/Index/1544/999

我在我的控制器内部的Index方法中使用VS2010步骤进行了成功调试!

然后,我决定进行下一步,并将URL上的最后一个参数更改为URLEncoded值...

http://mydomain.com/controller/Index/1544/somethingURLEncoded

我在浏览器中执行此操作后看到的问题是,在进入控制器内部的Index方法之前,MVC2 ASP.Net几乎自动对其进行URLDecoding解码。

是什么赋予了? 我以为我可以先进入控制器内部,然后再进行自己的URLDecode。 由于原始数据是AES加密的,并且其中带有正斜线。因此,过早使我的参数URLDecoding不是我可以计划的副作用。

请帮忙。

是的,MVC自动对操作参数进行URL解码。 但是您仍然可以通过查询字符串访问url编码版本。

因此,我要做的是对Base64进行编码,而不是对URL进行编码,而不是对Action参数中的AES加密数据进行编码。

由于ASP.NET MVC基于ASP.NET引擎(毫不奇怪),因此引擎会自动正确编码正确编码的URL,因此您无需询问任何问题。 只是:

public ActionResult Index(string q)
{
    // TODO : Use the q parameter here as is without ever caring of URL decoding it.
    // It's the caller of this action responsibility to properly URL encode his data
    return View();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM