|
|
Opublikowano 19.07.2015 23:37:53
|
|
|

1. RenderBody W silniku Razor nie ma "strony głównej", zamiast tego w folderze współdzielonym widoku umieszczana jest strona o nazwie "layout" (_Layout.cshtml). Na tej stronie zobaczysz oświadczenie w tagu: @RenderBody() W rzeczywistości działa podobnie do sterowania serwerem na stronie głównej – gdy tworzy się widok na podstawie tej strony układu, zawartość widoku jest scalana ze stroną ułożenia, a zawartość nowo utworzonego widoku jest renderowana pomiędzy etykietami za pomocą metody @RenderBody() strony układu. Ta metoda nie wymaga parametrów i może pojawić się tylko raz. 2. RenderPage Jak można się domyślić po nazwie, ta metoda polega na przedstawieniu strony. Na przykład stały nagłówek na stronie internetowej można umieścić osobno w pliku widoku wspólnego, a następnie wywołać w ten sposób na stronie układu, w następujący sposób: @RenderPage("~/Widoki/Udostępnione/_Header.cshtml") Z parametrami @RenderPage("~/Views/Shared/_Header.cshtml",new{parm="my",parm2="you") Zadzwoń do strony, aby uzyskać parametry: Uzyskaj parametry przekazywane przez RenderPage(). @PageData["param"] 3. RenderSekcja Strona z układem zawiera także koncepcję sekcji, czyli jeśli sekcja jest zdefiniowana w szablonie widoku, może być przedstawiona osobno w następujący sposób: @RenderPage("~/Widoki/Udostępnione/_Header.cshtml") @RenderBody()
//模板里添加了一个节 @RenderSection("głowa") Oczywiście zdefiniuj też przekroj w widoku, w przeciwnym razie wystąpi wyjątek: @section head{
//do
} Aby zapobiec wyjątkom z powodu brakujących sekcji, możesz podać RenderSection() drugi argument: @RenderSection("SubMenu", fałszywe) lub @if (IsSectionDefined("SubMenu"))
{ @RenderSection("SubMenu", fałszywe)
} else
{ <p>Sekcja Podmenu nie jest zdefiniowana!</p>
}
4.@Html.Partial Partial tworzy własną instancję TextWritera za każdym razem i zapamiętuje zawartość w pamięci. Na koniec wyślij wszystkie wyjścia zapisujące do obiektu MvcString Najczęściej używamy @{ html.RenderPartial("details"); zamiast @Html. Częściowe Różnica między RenderPage() a RenderPartial(). Wywołania RenderPage() mogą używać go tylko do przekazywania danych dalej. RenderPartial() może korzystać z viewdata, modelu i innych danych. Różnica między Html.RenderPartial a Html.RenderAction Html.RenderPartial nadaje się do powtarzających się UserControls i wystarczy go używać do renderowania treści przez modele lub do UserControls dla reklam. Html.RenderAction najpierw wywoła metodę Action's Controller, jeśli ten UserControl musi pobrać dane z bazy danych do renderowania (odczytać bazę danych przez Action), ta metoda jest bardziej odpowiednia w tym czasie. 5.Html.Partial("MyView") Zwróć strumień prób jako MvcHtmlString, zgodnie ze standardowymi regułami routingu. Renderuje widok "MyView" na ciąg MvcHtmlString. Stosuje standardowe zasady wyszukiwania widoków (czyli sprawdzaj aktualny katalog, a następnie katalog współdzielony). Html.RenderPartial("MyView")
Podobnie jak w Html.Partial(), różnica polega na tym, że jest wpisywany bezpośrednio na stronie bez buforowania. 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ż treść widoku nie jest buforowana w pamięci. Jednak ponieważ metoda nie zwraca żadnego wyjścia, @Html.RenderPartial("MyView") nie działa. Zamiast tego musisz owinąć wywołanie blokiem kodu: @{Html.RenderPartial("MyView"); }. RenderPage("MyView.cshtml")
Zwraca specjalny widok ze ścieżkami, nazwami plików itp. i generuje bezpośrednio jak Heml.RenderPartial() bez buforowania. zmienne modelu mogą być przekazywane. Renderuje określony widok (oznaczony ścieżką i nazwą pliku, a nie nazwą widoku) bezpośrednio do strumienia odpowiedzi, podobnie jak Html.RenderPartial(). Możesz dostarczyć dowolny model do widoku, dodając go jako drugi parametr RenderPage("MyView.cshtml",MyModel)
Wolę
@RenderPage("_LayoutHeader.cshtml")Odbiór @{Html.RenderPartial("_LayoutHeader"); }Tylko dlatego, że składnia jest łatwiejsza i bardziej czytelna. Poza tym nie wydaje się, żeby funkcjonalnie różniły się w tym zakresie.
|
Poprzedni:ASP.NET---- zaimplementować przycisk kliknięcia lub link, który wyświetli okno logowaniaNastępny:Ustaw CheckBoxList tak, aby nie owijała linii
|