2013-02-21 13 views
6

Mam wdrożoną aplikację mvc3 w Internecie. Jak mogę dodać nazwę katalogu wirtualnego w metodzie Url.Action()?Url.Action dla aplikacji mvc3 hostowanej w podkatalogu

dla np: mój wniosek jest w mydomain.com \ app

teraz kiedy zrobić

powraca Url.Action action = "/ Home/Utwórz", ale to, co chcę jest akcja = "/ app/Home/Create".

Co należy zrobić?

Odpowiedz

7

Nie powinieneś tego robić. Jeśli aplikacja zostanie poprawnie wdrożona w usługach IIS w katalogu wirtualnym (na przykład App), pomocnik Url.Action("Create", "Home") wygeneruje /app/home/Create, który jest poprawnym adresem URL.

+1

Po drugie, hostuję wiele aplikacji w katalogu wirtualnym i nigdy nie miałem tego problemu. – Beyers

+0

dzięki ... to działało –

1

mapie trasy (UWAGA: trasa ta ma stawić się przed trasy domyślnej)

 context.MapRoute(
      name: "app", 
      url: "app/{controller}/{action}/{id}", 
      defaults: new { controller = "Test", action = "Index", id = UrlParameter.Optional } 
     ); 

Następnie użyj Url.Action tak (powinny dać/app):

@Url.Action("Index", "Test") 

Możesz znaleźć trasy w pliku Global.asax.cs.

0

Wreszcie Używam Url.Content („~/Home/Utwórz”), która zwraca całą URL czy udostępniany w katalogu głównego lub dodatkowego.

Powiązane problemy