ASP.NET MVC3/Razor.Kodowanie adresu URL MVC3?
Okazało się, że podczas tworzenia łącza działania, mówią tak:
silnik@Html.ActionLink(product.Title, "Detail", "Products", new { id = product.ProductID }, null)
MVC3 tworzy moje informacje o produkcie. Na przykład:
http://myhost/{ActionUrl}/PRODID
Jeśli jednak mój identyfikator produktu miałby zawierać dowolny znak specjalny, nie zostałby zakodowany przy użyciu adresu URL.
http://myhost/{ActionUrl}/PROD/ID
Oczywiście, łamie to mój routing. Moje pytania są następujące:
- Czy powinienem oczekiwać automatycznego adresu kodowania? Czy jest jakiś sposób, aby to ustawić?
- Jeśli nie, to jaki jest najczyściejszy sposób kodowania i dekodowania? Naprawdę nie chcę tego robić w każdym kontrolerze.
Dzięki!
Zajęło mi trochę czasu, aby uświadomić sobie, ale masz całkowitą rację w swojej odpowiedzi. Niektóre znaki są jak zastrzeżone słowa kluczowe i po prostu nie możesz nic z tym zrobić. W przypadku niektórych innych możesz robić dziwne rzeczy, a nawet korzystać z tras catch-all, ale niektóre ze znaków specjalnych będą musiały pozostać w ten sposób (chyba, że chcesz przepisać je za pomocą wyrażeń regularnych). – Alpha
Więc jaki jest kod, aby zrobić to jako kwerenda? –