2011-02-03 19 views
5

w ASP.NET MVC, jeśli mogę użyć:Url.Action jest kodowania wartości parametrów

<% Response.Write (Url.Action ("Index", "usermanagement", nowy RouteValueDictionary (nowa {page = "{0}"}))); %>

uzyskać:

/usermanagement strona =% 7B0% 7D

Ale chciałem dostać:?

/usermanagement strona = {0}

Dlaczego wpisuje się w to moja wartość parametru i co powinienem zrobić, aby zapisać wartość parametru bez kodowania?

Dziękujemy

+0

jeśli używasz JavaScript do zastąpienia, możesz również uciec od napisu JavaScript też. ex: url = url.replace (escape ('{0}'), numer strony) –

+0

Czy to zostało kiedykolwiek rozwiązane? Występuję w tym samym problemie. –

Odpowiedz

-3

Metoda pomocnicza Url.Action służy do generowania adresów URL. Adresy URL muszą być zakodowane za pomocą adresu URL, aby mogły być poprawnymi adresami URL. To, co obserwujesz, jest całkowicie normalnym zachowaniem. Pomocnik generuje poprawny adres URL kodując wszystkie parametry.

+1

Dzięki. Mój problem polega na tym, że {0} jest symbolem zastępczym. Zamienię ten bit na rzeczywisty numer strony. Zmieniłem element zastępczy na coś innego (_PAGE_), aby nie było zakodowane. Powinna istnieć opcja kodowania lub nie parametrów adresu URL. – SomeoneAnon

+1

-1 Dziękuję za stwierdzenie oczywistości, ale pytanie OP pozostaje bez odpowiedzi – Levitikon

0

Po pierwsze, należy w miarę możliwości unikać parowania QueryString. Zmień je w parametry trasy. Następnie należy użyć nawiasów klamrowych i to właśnie robi dla ciebie pomocnik Url.Action().

+0

To prawdopodobnie jest to, co zamierzał zrobić, chce zbudować URL za pomocą routingu, ale zastosować wartości trasy na kliencie –

Powiązane problemy