2011-10-11 12 views
6

Wszyscy, używam MVC 3 (Razor). Mam następujący problem:Jak używać metody Html.Partial() do renderowania częściowego z jawną ścieżką

Mam niektóre wspólne treści podzielone na częściowy widok. Ale zamiast umieścić go w domyślnej lokalizacji (views/shared lub), muszę umieścić go w innym miejscu (views/shared/new-folder lub view/controller-name/new-folder).

Próbowałem tego: @Html.Partial("views/shared/new-folder/partial-view-name") lub nawet @Html.Partial("views/shared/new-folder/partial-view-name.cshtml"), ale wydaje się, że MVC3 uwzględnia tylko parametr jako nazwę widoku i całkowicie ignoruje informacje o ścieżce.

Może zrobiłem coś złego, czy ktoś może mi w tym pomóc? :) Dziękuję bardzo!

+1

tutaj jest to samo pytanie [http://stackoverflow.com/questions/7640790/how-does-renderpartial-figure-out-where-to-find-a-view/7641165#7641165] [ 1] [1]: http://stackoverflow.com/questions/7640790/how-does-renderpartial-figure-out-where-to-find-a-view/7641165#7641165 – zdrsh

Odpowiedz

16

Trzeba odwoływać się za pomocą ścieżki wirtualnej aplikacji (zawiadomienie ~\ na początku ścieżki):

@Html.Partial("~\\views\\shared\\new-folder\\partial-view-name.cshtml") 
+0

dziękuję ! działa! ~~ – NextStep

1

Jeśli skonfigurowany akcję powrotu To częściowe View, można to zrobić również:

@{ Html.RenderAction("PartialViewAction", "PartialViewCOntroller");}

to chyba lepiej, ponieważ nie powinno być trudne kodowania odniesień do widoków w kodzie. Wdrożenie twardego kodu na innym serwerze może spowodować awarię aplikacji, ale wywołanie akcji powodującej powrót do widoku nie będzie możliwe.

Powiązane problemy