有沒有辦法在我的控制器視圖內渲染A從其他控制器的局部視圖B?渲染從其他控制器的部分視圖
編輯:我寫的是良好的只有兩個控制器的局部視圖,我不希望它複製到自己的兩個視圖文件夾。
我希望每次發生視圖時都會顯示局部視圖,而不是發生某種事情後。
有沒有辦法在我的控制器視圖內渲染A從其他控制器的局部視圖B?渲染從其他控制器的部分視圖
編輯:我寫的是良好的只有兩個控制器的局部視圖,我不希望它複製到自己的兩個視圖文件夾。
我希望每次發生視圖時都會顯示局部視圖,而不是發生某種事情後。
Html.Partial()
當前視圖內。Html.Action()
當前視圖中調用不同的控制器上的操作和渲染的結果。關於選項3:我可以調用我的控制器並從其他控制器渲染局部視圖嗎?不使用相對路徑謝謝! – gdoron
@gdoron您可以在一個或另一個控制器中本地化生成部分視圖的代碼,並在兩個控制器中通過'Html.Action()'包含視圖。 – tvanfosson
5.您也可以通過提供完整路徑作爲部分視圖來呈現@ Html.Partial(「〜/ Views/Partials/Location.cshtml」,Model) –
@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模塊,則不能使用張貼Pittfall的neat solution,你必須使用相對路徑返回部分視圖。比方說你有一個控制器
Controllers/SiteController.cs
,並要返回局部視圖
Shared/MessageList/Items
然後在動作方法中,你需要寫
return PartialView("../Shared/MessageList/Items");
這可能意味着一些不同的東西。你只是想重用視圖(由控制器A生成的模型)?你想調用生成視圖的控制器操作嗎?你想在頁面呈現後使用AJAX動態加載視圖嗎? – tvanfosson
你能更具體嗎?你想要達到什麼目的? –
@ Html.Action( 「YourPartialViewAction」, 「ControllerName」,新{ID = Model.id})我描述了多想我要實現 –