К сожалению, мне нужно принять параметр маршрута с символом & в нем. У меня есть это определение маршрута. Параметр id иногда имеет & в нем, как этот X & Y001.
routes.MapRoute(
"AffiliateEdit",
"Admin/EditAffiliate/{*id}",
new { controller = "UserAdministration", action = "EditAffiliate", id = ""}
);
Я пытался обойти эту проблему следующими способами, однако ни один из них не помог. Все это приводит к ошибке HTTP 400 Bad Request в браузере.
<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>