コントローラーのビュー内でレンダリングする方法はありますか[〜#〜] a [〜#〜]他のコントローラーからの部分ビュー[〜#〜] b [〜#〜]?
編集:2つのコントローラーのみに適した部分ビューを作成しましたが、両方のビューフォルダーにコピーしたくありません。
何かが起こった後ではなく、ビューがレンダリングされるたびに部分ビューを表示したいです。
Html.Partial()
を使用して、現在のビュー内に部分的なビュー((1)のようにコントローラー間で共有できる)をレンダリングできます。Html.Action()
を使用して、異なるコントローラーでアクションを呼び出し、現在のビュー内で結果をレンダリングできます。@Html.Partial("~/Views/ControllerB/Index.cshtml")
はい、
return PartialView("/path/view.cshtml");
あなただけのパス部分を解決する必要があります。
または、部分ビューをviews/sharedに配置してから戻るだけでもかまいません。
return PartialView("view.cshtml");
@model YourModelNamesapce.ModelName
@{
ViewBag.Title = "Edit";
Layout = "~/Views/Shared/_LayoutForPartialViews.cshtml";
}
<table>
<tr>
<td>
@Html.LabelFor(model => model.fieldname)
</td>
<td>
@Html.DisplayFor(model => model.fieldname)
</td>
</tr>
<tr>
<td>@Html.Action("PartialViewAction", "Controller", new { id = Model.id })</td>
</tr>
</table>
私はこのスレッドが同じ質問を検索しているのを見つけましたが、答えは機能していませんでした:オーチャードCMSモジュールでは、 ニートソリューション を使用できません部分ビューを返します。コントローラーがあるとしましょう
Controllers/SiteController.cs
そして、あなたは部分的なビューを返したい
Shared/MessageList/Items
その後、アクションメソッドで書く必要があります
return PartialView("../Shared/MessageList/Items");