【ASP.NET MVC】【Razor】【VB】 Razor ~ 部分ビュー編 ~

はじめに

使用したビュー・ヘルパー

 * @Html.Partial

【構文】
@Html.Partial(【部分ビュー名】 [,【モデル名】])

サンプル

コントローラ

SamplePartialController.vb(ただビューを表示するだけ)
Imports System.Web.Mvc

Namespace Controllers
    Public Class SamplePartialController
        Inherits Controller

        ' GET: SamplePartial
        Function Index() As ActionResult
            Return View()
        End Function
    End Class
End Namespace

ビュー

 * Sharedディレクトリを右クリックし、[Add]-[MVC5 Partial Page(Razor)]で部分ビューを追加
_PartialPage1.vbhtml(部分ビュー)
<div>
    <h2>ここに部分ビューの内容を書く</h2>
</div>
Index.vbhtml
@Code
    ViewData("Title") = "Index"
End Code

<h2>Index</h2>
ここが部分ビュー↓
@Html.Partial("_PartialPage1")
ここが部分ビュー↑

出力結果

Index
ここが部分ビュー↓
ここに部分ビューの内容を書く
ここが部分ビュー↑ 

注意

RenderPageについて

http://blog.shibayan.jp/entry/20140501/1398956392
より

 * 機能としては Partial / RenderPartial に近い
 * Shared ディレクトリを認識しない点が大きな違い
 * 呼び出し時にパラメータを渡せる
http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_08/aspnetmvc3_08_04.html
より

 * RenderPageメソッドはPartial/RenderPartialメソッドのようなビュー検索機能を持たない
  (「/Views/コントローラ名/ビュー名.cshtml」→「/Views/Shared/ビュー名.cshtml」の順で
  検索を行わない)
 => 引数にも部分ビューへの正確なパスを渡さなければならず、やや不便
 * RenderPageメソッドとRendePartialメソッドとを同一のページで組み合わせてしまうと、
   後に呼び出したRenderPartialメソッドの結果が出力されないという不具合もあるようだ(逆なら大丈夫)


関連記事

Razor ~入門編~

http://blogs.yahoo.co.jp/dk521123/35586581.html

Razor ~ レイアウト(マスターページ)編 ~

http://blogs.yahoo.co.jp/dk521123/35877333.html