不幸的是,我需要接受其中包含&的路由參數。我有這個路由定義。 id參數有時會有一個&,就像這個X & Y001一樣。通過&作爲路由參數的一部分
routes.MapRoute(
"AffiliateEdit",
"Admin/EditAffiliate/{*id}",
new { controller = "UserAdministration", action = "EditAffiliate", id = ""}
);
我試着用下面的方法解決這個問題,但是他們都沒有工作。所有這些導致瀏覽器中出現HTTP 400錯誤請求錯誤。
<a href="/Admin/EditAffiliate/<%= a.CustomerID.Replace("&", "%26") %>">Edit</a>
這給了我<a href="/Admin/EditAffiliate/X%26Y001">Edit</a>
<%= Html.RouteLink("Edit", "AffiliateEdit", new { id = a.CustomerID }) %>
這給了我<a href="/Admin/EditAffiliate/X&Y001">Edit</a>
<%= Html.RouteLink("Edit", "AffiliateEdit", new { id = Url.Encode(a.CustomerID) }) %>
這給了我<a href="/Admin/EditAffiliate/X%2526Y001">Edit</a>
爲什麼你需要傳遞&作爲ID的一部分? – 2010-07-09 14:52:35
,因爲ID已經設置,我不能對他們做任何事情 – MHinton 2010-07-09 15:00:56