@ Html.Partial () vs @RenderPage()
Jaki jest odpowiedni sposób renderowania szablonu podrzędnego?
A co za różnica? Oba wydają się działać dla mnie.
I dlaczego @Html.RenderPartial()
już nie działa?
5 answers
Html.Partial("MyView")
Renderuje widok "MyView" na MvcHtmlString
. Postępuje zgodnie ze standardowymi regułami wyszukiwania widoku (np. sprawdź bieżący katalog, a następnie sprawdź katalog Shared
).
Html.RenderPartial("MyView")
Robi to samo co Html.Partial()
, z tą różnicą, że zapisuje swoje wyjście bezpośrednio do strumienia odpowiedzi. Jest to bardziej efektywne, ponieważ zawartość widoku nie jest buforowana w pamięci. Jednakże, ponieważ metoda nie zwraca żadnego wyjścia, @Html.RenderPartial("MyView")
nie będzie działać. Zamiast tego musisz zawinąć połączenie w blok kodu: @{Html.RenderPartial("MyView");}
.
RenderPage("MyView.cshtml")
Renderuje określony widok (identyfikowany ścieżką i nazwą pliku, a nie nazwą widoku) bezpośrednio do strumienia odpowiedzi, Jak Html.RenderPartial()
. Możesz dostarczyć dowolny model do widoku, włączając go jako drugi parametr
RenderPage("MyView.cshtml", MyModel)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-03 05:38:31
Wolę
@RenderPage("_LayoutHeader.cshtml")
Over
@{ Html.RenderPartial("_LayoutHeader"); }
Tylko dlatego, że składnia jest łatwiejsza i bardziej czytelna. Poza tym nie wydaje się być żadnych różnic funkcjonalności mądry.
Edit: jedną z zalet RenderPartial jest to, że nie musisz podawać całej ścieżki lub rozszerzenia pliku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-21 17:52:53
Metoda RenderPartial nie zwraca znaczników HTML, jak większość innych metod pomocniczych. Zamiast tego pisze zawartość bezpośrednio do strumienia odpowiedzi, dlatego musimy wywołać ją jak pełną linię C#, używając średnika.
Jest to nieco bardziej wydajne niż buforowanie renderowanego HTML z częściowego widoku, ponieważ będzie on zapisywany do w każdym razie strumień odpowiedzi. Jeśli wolisz bardziej spójną składnię, możesz użyć Html.Metoda częściowa , która czy dokładnie tak samo jak Metoda RenderPartial , ale zwraca fragment HTML i może być użyty jako @ Html.Częściowy ("produkt", p).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-26 06:53:33
Możemy również przekazać model używając częściowych widoków. @ Html.Partial("MyView", "MyModel");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 21:43:52
@RenderPages()
Powyższe nie działa w ASP.NET MVC. Działa tylko na stronach internetowych.
@Html.Partial("_Footer")
Będziesz musiał użyć powyższego w ASP.NET MVC.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-26 02:38:51