mam trasę, która wygląda tak:Pierwsze ASP.NET MVC poprawnie ucieC# (hash/funt) charakter w trasach
routes.MapRoute(
"BlogTags",
"Blog/Tags/{tag}",
new { controller = "Blog", action = "BrowseTag", viewRss = false }
);
I stworzyć URL przy użyciu tej trasy tak:
<%= Html.RouteLink(Html.Encode(sortedTags[i].Tag),
new { action = "BrowseTag", tag = sortedTags[i].Tag })%>
jednak, gdy używany jest znak z charakterem # (na przykład „C#”), silnik routingu nie uciec, więc mogę dostać adres URL, który wygląda tak:
<a href="/Blog/Tags/C#">C#</a>
Co potrzebne jest # uciekł tak, że wygląda tak:
<a href="/Blog/Tags/C%23">C#</a>
Próbowałem robić Url.Encode na metce, zanim udał się na trasie, tak:
<%= Html.RouteLink(Html.Encode(sortedTags[i].Tag),
new { action = "BrowseTag", tag = Url.Encode(sortedTags[i].Tag) })%>
ale to sprawia, że silnik routingu podwójne ucieC# (który powoduje awarię ASP.NET z bad request Error)):
<a href="/Blog/Tags/C%2523">C#</a>
Jak mogę dostać silnik routingu, aby uciec, że znak # dla mnie correc Tly?
Dziękuję za pomoc z góry.
Na marginesie, silnik routingu jest naprawiony w .NET 4. Ucieknie wszystko, co do niego dotarło. Jeśli korzystasz z aplikacji MVC 2 na platformie .NET 4, powinieneś być w stanie automatycznie wykryć to zachowanie. – Levi