2012-04-24 16 views
7

Mam większy projekt z około 9 kontrolerów. Teraz pod koniec projektu zmienia się wymóg dotyczący url. Jak najlepiej radzić sobie z tą sytuacją - zmiana nazwy kontrolerów wydaje się po prostu zbyt kłopotliwe ... Muszę zmienić wszystkie linki w servercode i javascriptzmiana nazwy kontrolera asp.net mvc

+0

Możesz również spojrzeć na Przepis Url IIS – Chandermani

+0

ReSharper6 to ten, który wykonuje zadanie .. –

+0

Pamiętaj również: możesz używać kresek w akcjach, które muszą być określone w adresie URL, wbrew regułom nazewnictwa metod C# (zajęło to mi trochę czasu, aby się tego nauczyć). zobacz: http://stackoverflow.com/questions/30310/asp-net-mvc-how-do-i-enable-dashes-in-my-urls – Faust

Odpowiedz

6

Twój problem może być rozwiązany poprzez zmianę istniejących tras. W swojej global.asax znajdziesz fragment kodu jak ten

routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

że mapy URL '/ Controller/Action/id' do kontrolera, akcji i Id. Możesz podawać trasy takie jak ta, aby przekazywać żądania do/SomeChangedURLBase ..., aby były obsługiwane przez kontroler.

Należy pamiętać, że te trasy powinny zostać zarejestrowane przed trasą domyślną, aby uniknąć tego, że linki generowane w widokach wskazują domyślną trasę i generują stary adres URL.

+0

Jeden punkt zrozumiałem po wykonaniu tego: W przeglądarce wciąż widzę stare adresy URL, jeśli regularnie przeglądam aplikację, ale moje nowe adresy URL są akceptowane. Jakikolwiek sposób na zmianę tego - aby wyświetlać nowe adresy URL? –

+0

Może to być problem z zamawianiem Trasy/budynkiem ActionLink. Do generowania linków można użyć łącza RouteLink zamiast ActionLink. – saintedlama

+0

Jeśli używasz ActionLinks na swoich stronach i kierujesz je do kontrolera i działania, użyje nowego adresu URL, jeśli zostanie umieszczony przed starym w zbiorze tras. –

Powiązane problemy