參考:http://blog.kkbruce.net/2014/09/ie11-pass-unicode-querystring-with-aspnet-mvc-http502.html#.WSanqut95QI
大概簡述一下
就是使用GET傳遞參數的時後,"?name=微軟"這段參數
在chrome或firefox都沒問題,但是在ie的話,中文會讀取錯誤
今天又發生類似的問題
可是是在mvc的一個area底下
http://aaa.bbb/{area}/{controller}/{action}?name=微軟
很好,這次我吃不到參數了
研究了一下發現,在開AREA的時後有個route設定的cs把參數名稱預設為id了
context.MapRoute(
"AreaName_default",
"AreaName/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
當然,我第一個想法就是把ID拿掉
context.MapRoute(
"AreaName_default",
"AreaName/{controller}/{action}/",
new { controller = "Home", action = "Index" }
);
很好,它回給我404,連參數都不給傳了
好吧
我放棄,我直接把參數名稱改稱ID
[GET("AreaName/{controller}/{action}/{id}")]
哦哦哦哦,它終於可以動了
真讓人感動!
不是我在說,微軟你不要婊自己的東西好嗎,很麻煩內