ビューの中に部分ビューを読み込むには?
質問
この部分表示で非常に困っています。
メインビューの中に部分ビューをロードしたいのですが、どうすればよいでしょうか?
以下は簡単な例です。
メインページとしてHomecontroller IndexアクションのIndex.cshtmlを読み込んでいます。
index.cshtmlに、以下の方法でリンクを作成しています。
@Html.ActionLink("load partial view","Load","Home")
という新しいActionをHomeControllerに追加しています。
public PartialViewResult Load()
{
return PartialView("_LoadView");
}
を_LoadView.cshmtlの中に入れているだけです。
<div>
Welcome !!
</div>
しかし、プロジェクトを実行すると、index.cshtml が最初にレンダリングされ、"Load Partial View" というリンクが表示されます。これをクリックすると新しいページに移動し、 _LoadView.cshtml から index.cshtml にウェルカムメッセージがレンダリングされなくなります。
何が間違っているのでしょうか?
注:AJAXでページをロードしたくない、またはAjax.ActionLinkを使いたくない。
どのように解決するのですか?
メインビューの内部で部分ビューを直接ロードしたい場合は
Html.Action
ヘルパーを使います。
@Html.Action("Load", "Home")
または、Loadアクションを経由したくない場合は、HtmlPartialAsyncヘルパーを使用してください。
@await Html.PartialAsync("_LoadView")
を使いたい場合は
Ajax.ActionLink
を使いたい場合は
Html.ActionLink
に置き換えてください。
@Ajax.ActionLink(
"load partial view",
"Load",
"Home",
new AjaxOptions { UpdateTargetId = "result" }
)
そしてもちろん、パーシャルが表示されるページにはホルダーを含める必要があります。
<div id="result"></div>
も忘れずに入れましょう。
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
を有効にするために、メインビューで
Ajax.*
ヘルパーを有効にするためです。そして、web.configでunobtrusive javascriptが有効になっていることを確認してください(デフォルトで有効になっているはずです)。
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
関連
-
[解決済み] Automapper のタイプマップ構成がない、またはサポートされていないマッピング - エラー
-
[解決済み] Razor View Page で名前空間をインポートするにはどうしたらいいですか?
-
[解決済み] ASP.NET MVCのビューを文字列としてレンダリングする方法は?
-
[解決済み】TextBoxFor()からは日付のみ。)
-
[解決済み】認証や認可に失敗した場合、AuthorizeAttributeがログインページにリダイレクトされるのはなぜですか?
-
[解決済み】MVCアプリケーションでデータをキャッシュする方法
-
[解決済み】ASP.NET MVC 3 コントローラから200 HTTPステータスコードを返す方法
-
[解決済み】Java Server Faces 2.0の主なデメリットは何ですか?
-
[解決済み] mvc 4 で部分ビューにパラメータを渡すにはどうすればよいですか?
-
[解決済み] MVC 3:ajax経由でロードされたときに、そのレイアウトページなしでビューをレンダリングするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] asp.net MVCの@RenderSectionとは?
-
[解決済み] コントローラ '...' でパブリックアクションメソッド '...' が見つかりませんでした。
-
[解決済み] ASP.NET MVCのビューを文字列としてレンダリングする方法は?
-
[解決済み】ASP.NET MVC 3 razor ViewStart ファイルで異なるレイアウトを指定するには?
-
[解決済み】Html5 data-* with asp.net mvc TextboxFor html attributes
-
[解決済み】ASP.NET MVCのフォームでチェックボックスを処理するにはどうすればよいですか?
-
[解決済み】ASP.NET MVC 3 - 部分テンプレートと表示テンプレートと編集テンプレート
-
[解決済み】ViewModelのベストプラクティス
-
[解決済み] ASP.NET MVCのモデルでUrlHelperを呼び出す
-
[解決済み] エリア間のRedirectToAction?