[英]Render Partial View from other controller
有沒有辦法在我的控制器A視圖中呈現來自其他控制器B的局部視圖?
編輯:我寫了一個僅適用於兩個控制器的局部視圖,我不想將它復制到兩個Views文件夾中。
我希望每次呈現視圖時都不會顯示部分視圖。
Html.Partial()
在當前視圖中渲染局部視圖(可以在控制器之間共享,如(1)中Html.Partial()
。 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>
只是旁注,因為我發現這個線程搜索相同的問題,但答案不起作用:在Orchard CMS模塊中,你不能使用Pittfall發布的整潔解決方案 ,你必須使用相對路徑來返回部分視圖。 假設你有一個控制器
Controllers/SiteController.cs
並且您想要返回局部視圖
Shared/MessageList/Items
然后在你需要寫的動作方法中
return PartialView("../Shared/MessageList/Items");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.