To działa, ponieważ zwraca wynik częściowego renderowania widoku w ciągu:
@Html.Partial("Path/to/my/partial/view")
Ale wolę używać RenderPartial
i wydaje mi się, że muszę napisać:
@{Html.RenderPartial("Path/to/my/partial/view");}
zamiast:
@Html.RenderPartial("Path/to/my/partial/view");
Aby to zadziałało. Komunikat o błędzie:
Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
Czy istnieje lepszy sposób zamiast otwierania bloku kodu @{...}
tylko dla jednego wywołania metody?
asp.net-mvc
asp.net-mvc-3
razor
artvolk
źródło
źródło
@Html.RenderPartial()
RenderPartial
?Odpowiedzi:
RenderPartial()
jest metodą void, która zapisuje w strumieniu odpowiedzi. Metoda void w języku C # wymaga elementu;
i dlatego musi być ujęta w{ }
.Partial()
to metoda, która zwraca MvcHtmlString . W Razor możesz wywołać właściwość lub metodę, która zwraca taki ciąg z tylko@
prefiksem, aby odróżnić go od zwykłego kodu HTML, który masz na stronie.źródło
Html.RenderPartial () jest metodą void - możesz sprawdzić, czy metoda jest metodą void, umieszczając kursor myszy nad wywołaniem RenderPartial w kodzie, a zobaczysz tekst (rozszerzenie) void HtmlHelper.RenderPartial ...
Metody void wymagają średnika na końcu kodu wywołującego.
W silniku widoku formularzy sieci Web można zamknąć wywołanie Html.RenderPartial () w użądleniach pszczół <%%>
tak
gdy używasz aparatu widoku Razor, odpowiednikiem jest
źródło
źródło
Html.RenderPartial()
, dlatego zadałem to pytanie. Szczegóły: „Jeśli chodzi o wydajność, twierdzono, że renderowanie bezpośrednio do strumienia wyjściowego jest lepsze (dlatego na początku zastosowano void RenderPartial)”. stąd stackoverflow.com/a/2729851/118810Jeśli otrzymasz ten format, będzie on przypominał link do innej strony lub innego łącza. Widok częściowy używany głównie do renderowania plików html z jednego miejsca do drugiego.
źródło