IE 11傳遞中文參數值在ASP.NET MVC產生HTTP 502
這是網友在MSDN論壇提出的問題《MVC在IE11因網址未編碼發生502問題,新增Route之後同樣未編碼卻沒問題,想問為什麼?,想想,這算不錯的題目,未來拿來當課程考題好了 XD
問題備份
原網址在IE 11下因中文未編碼出現502,嘗試新增一個Route後即解決問題,不知為何一樣傳送未編碼的中文Request竟然就沒有問題了? 新增的route如下:
routes.MapRoute( name: "StoreBrowse", url: "store/{genre}", defaults: new { controller = "store", action = "browse" , id = UrlParameter .Optional } );原URL為: /Store/Browse?genre=健康飲品
修改後:/Store/健康飲品
接收URL的Action:
public ActionResult Browse( string genre) { // Retrieve Genre and its Associated Albums from database var genreModel = storeDB.Genres.Include("Albums" ) .Single(g => g.Name == genre); return View(genreModel); }原本的問題是因為網址列傳送中文,但是更改Route後還是有傳送中文,為何就沒有問題了?
IE11的QueryString
以下使用 Visual Studio 2013新增一個 MVC 專案,修改一下"/Home/Index"的程式碼:
public ActionResult Index(string name) { return Content(name); }