Jak uzyskać pełny adres URL żądania (w tym ciąg zapytania) w moim kontrolerze? Czy jest to kwestia połączenia moich parametrów adresu URL i formularza, czy jest lepszy sposób?Uzyskaj pełny adres URL żądania, w tym parametry w kontrolerze
Sprawdziłem pytanie this, ale wygląda na to, że nie dotyczy to MVC.
Popraw mnie, jeśli się mylę.
Niektóre bardziej szczegółowe informacje:
Moje wezwanie do mojego SearchController.AdvancedSearch()
pochodzi od postaci z około 15 opcjonalnych parametrów. Ze względu na liczbę parametrów i brak możliwego (jak sądzę) sposobu przekazania parametrów opcjonalnych w czysty sposób, wybrałem ciąg znaków catchall, który jest obsługiwany w kontrolerze.
Teraz chcę, aby mój kontroler zapisał wywołanie w komponencie nawigacyjnym, aby po kliknięciu miękiszu dokładnie ten sam wynik mógł zostać pobrany (z wszystkimi, ale nie więcej, z dołączonych argumentów). Aby to zrobić, potrzebuję całego request.URL, , w tym querystring.
W Request.RawURL
, request.URL
itp. Ten ciąg zapytania nie został uwzględniony. W rzeczywistości obecnie wykonuję zwykłą funkcję.
String.Format("{0}/{1}", request.Url, request.form)
Daje mi to pewne dziwne wyniki (np. Wartości przycisków wysyłania itp.), Ale działa. Jeśli istnieją sugestie, jak zrobić to mniej brzydkie włamanie, proszę powiedz.
Wiem, gdzie znaleźć bieżącą prośbę, ale nie wydaje mi się, aby znaleźć nieprzetworzony adres URL w dowolnym miejscu. Wszyscy są pozbawieni querystringu i ja też tego potrzebuję.
Mój kontroler aktualizuje zbiór adresów URL w moim komponencie BreadCrumb
. Dlatego potrzebuje adresu URL żądania. Jak sugerujesz, że podchodzę do tego problemu?
Heh, dziękuję za odpowiedź, chociaż pytanie to ma 2 lata;) W międzyczasie pojawiły się dwie kolejne wersje MVC, a opcjonalne parametry są wsparte przez framework MVC, powodując problem sporny. –