我使用asp.net mvc版本1.0,並且我在URL中的一些參數有問題!Urls參數編碼不正確!
我的網址看起來像這樣(http://localhost:2282/Tags/PostList/c#)
routes.MapRoute(
"TagsRoute",
"Tags/PostList/{tag}",
new { controller="Tags",Action="PostList",tag = "" }
);
實際上的問題是,標籤放慢參數不編碼等辛博爾#被忽略!
我正在使用動作鏈接,但可能與版本1.0不直接編碼參數!
<%=Html.ActionLink(itemtags.Tags.TagName,
"PostList","Tags",
new { tag = itemtags.Tags.TagName },
new { style = "color:red;" })%>
有了這個動作鏈接只有空白編碼正確,實際上asp.net mvc成爲asp.net%20mvc,它工作正常!但是C#是沒有編碼:(
所以我嘗試使用Server.UrlEncode,並且實際上也發生了一些東西!
逸岸C#成爲C%2523,但它不會被再次正確,因爲十六進制!?排名是%23
你有一些解決方案????路線約束上
感謝
是的,實際上它是雙重編碼。但爲什麼??它使用空格而不是simbol進行正確的編碼!所以這是正常的,如果我mae Server.UrlEncode我得到一個雙重編碼:( – Ivan90 2010-05-13 20:07:32
Server.UrlEncode(「c#」)返回「c%23」的權利?有人在你的第二次調用UrlEncode商業框架往往有兩種口味,一種是爲你編碼,另一種是沒有編碼,它是內部框架,幾乎總是會做兩次,或者兩次做同樣的事情。 我想盡量不編碼它。如果這不起作用,那麼您需要查看自己的代碼,並將所有的調用都發送到應用程序的同一層的Server.UrlEncode。否則,您將永遠播放whack-a-URL。 – Jason 2010-05-13 21:49:54