この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 13486|答える: 0

[ASP.NET] @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderActi...

[リンクをコピー]
掲載地 2015/07/19 23:37:53 | | |
1. RenderBody
Razorエンジンには「マスターページ」はなく、「layout」(_Layout.cshtml)というページが共有ビューフォルダに配置されています。 このページでは、タグに次のような文言が表示されます:
@RenderBody()
実際、マスターページのサーバー制御と似ており、レイアウトページに基づくビューが作成されると、そのビューの内容がレイアウトページと統合され、新たに作成されたビューの内容がレイアウトページの@RenderBody()メソッドでラベル間でレンダリングされます。
この方法はパラメータを必要としず、一度だけ現れます。
2. RenderPage
名前からもわかるように、この方法はページを提示することです。 例えば、ウェブページの固定ヘッダーは共有ビューファイルに別々に配置され、レイアウトページでこの方法で呼び出すことができます。
@RenderPage("~/Views/Shared/_Header.cshtml")
パラメータ付きで
@RenderPage("~/Views/Shared/_Header.cshtml",new{parm="my",parm2="you")
パラメータを確認するにはページに電話してください:
パラメータはRenderPage()で渡されます。
@PageData[「パラム」]
3. レンダーセクション
レイアウトページにはセクションの概念も含まれており、ビューテンプレートでセクションが定義されている場合、以下のように別々に表示できます。
@RenderPage("~/Views/Shared/_Header.cshtml")
@RenderBody()
//模板里添加了一个节
@RenderSection(「頭」)
もちろん、ビュー内で断面も定義してください。そうでなければ例外が発生します:
@section頭{
//do
}
セクションの欠落による例外を防ぐために、RenderSection()に2つ目の引数を付けることができます:
@RenderSection("SubMenu"、false)
又は
@if(IsSectionDefined("SubMenu"))
{
@RenderSection("SubMenu"、false)
}
そうでなければ
{
<p>サブメニューセクションは定義されていません!</p>
}
4.@Html.Partial
Partialは毎回独自のTextWriterインスタンスを作成し、その内容をメモリにキャッシュします。 最後に、すべてのライター出力をMvcStringオブジェクトに送信します
多くの場合、@{ html.RenderPartial("details")を使っています。 @Htmlの代わりに。部分的
RenderPage() と RenderPartial() の違い。
RenderPage()コールは過去のデータパスのみに使えます。
RenderPartial()はビューデータ、モデル、その他のデータを利用できます。
Html.RenderPart と Html.RenderAction の違い
Html.RenderPartiaalは繰り返しのユーザーコントロールに適しており、モデルを通じたコンテンツのレンダリングや広告用のユーザーコントロールにのみ使用すればよい。 Html.RenderActionはまずコントローラーのActionメソッドを呼び出します。もしこのUserControlがデータベースからデータを取得してレンダリング(Actionを通じてデータベースを読み取る)必要がある場合、このメソッドの方がこのタイミングにより適しています。
5.Html.Partial("MyView")
標準的なルーティングルールに従い、試行ストリームをMvcHtmlStringとして返します。
「MyView」ビューをMvcHtmlStringにレンダリングします。 ビュー検索の標準ルールに従います(つまり、現在のディレクトリを確認し、その後共有ディレクトリをチェック)。
Html.RenderPartial("MyView")

Html.Partial()と似ていますが、違いはキャッシュなしで直接ページに入力される点です。 Html.Partial()と同じですが、出力をレスポンスストリームに直接書き込む点が異なります。 これはビューコンテンツがメモリにバッファされていないため、より効率的です。 しかし、このメソッドが出力を返さないため、@Html.RenderPartial(「MyView」)は動作しません。 代わりに、呼び出しをコードブロックでラップする必要があります:@{Html.RenderPartial("MyView"); }.
RenderPage("MyView.cshtml")

パスやファイル名などを含む特別なビューを返し、Heml.RenderPartial()のようにキャッシュなしで直接出力します。 モデル変数は渡すことができます。 指定されたビュー(ビュー名ではなくパスとファイル名で識別)をHtml.RenderPartial(など)直接レスポンスストリームにレンダリングします。 任意のモデルを2つ目のパラメータとして含めてビューに提供できます
RenderPage("MyView.cshtml",MyModel)

私は
@RenderPage("_LayoutHeader.cshtml")オーバー
@{Html.RenderPartial("_LayoutHeader"); }それは構文が簡単で読みやすいからです。 それ以外は機能面で特に違いは見当たりません。





先の:ログインダイアログを表示するクリックボタンやリンクを実装 ASP.NET----
次に:チェックボックスリストを行を巻き付けないように設定してください
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com