Asp.net mvc ASP.NET MVC解析URL查询部分
我想要一些东西将URL的Asp.net mvc ASP.NET MVC解析URL查询部分,asp.net-mvc,urldecode,Asp.net Mvc,Urldecode,我想要一些东西将URL的?a=5&b=8部分转换为字典{a:5,b:8} net中有这样的方法吗?还是我自己 我需要解析查询部分,以便实现自己的URL解码。 问题是Firefox根据使用的字母表使用不同的编码(UTF8或ISO-8859-1) 例如: Firefox编码如下: - v v http://localhost:8041/Reforge.aspx?name=ArcânisГ Firefox turn
?a=5&b=8
部分转换为字典{a:5,b:8}
net中有这样的方法吗?还是我自己
我需要解析查询部分,以便实现自己的URL解码。
问题是Firefox根据使用的字母表使用不同的编码(UTF8或ISO-8859-1)
例如:
Firefox编码如下:
- v v
http://localhost:8041/Reforge.aspx?name=ArcânisГ
Firefox turns into
http://localhost:8041/Reforge.aspx?name=Arc%C3%A2nis%D0%93`
请注意,UTF8
编码用于两个非ASCII字符
- v
http://localhost:8041/Reforge.aspx?name=Arcâ
Firefox turns into
http://localhost:8041/Reforge.aspx?name=Arc%E2
请注意,ISO-8859-1
(拉丁语-1)编码用于非ASCII字符
这里有一个相关的问题:Request.QueryString是一个类似于字典的NameValueCollection 它可以包含同一个键的多个值 如果“?a=5&b=8”不是来自querystring,则可以使用HttpUtility.ParseQueryString方法获取NameValueCollection 如果你想要一本真正的字典:
var d = new Dictionary<String,Object>();
this.Request.QueryString.CopyTo(d);
var d=newdictionary();
this.Request.QueryString.CopyTo(d);
是否可以使用自定义modelbinder来处理字典?似乎依赖查询字符串虽然完全有效,但却违背了框架的精神。这也可能使测试你的行为变得更加困难
我的第一个想法是,这已经由默认的modelbinder工具处理了,但情况似乎并非如此。也就是说,我还没有尝试过,但这就是我要开始的地方:
Request.QueryString的问题是它也会取消对值的扫描,这是我需要处理的取消扫描。详细信息:firefox可以使用utf-8或拉丁语-1来转义字符,但ASP.NETMVC始终使用其中一种。