从其他控制器呈现部分视图
有没有办法在我的控制器A视图内呈现从其他控制器B的局部视图?
编辑:我写了一个局部视图,只有两个控制器,我不想复制到两个视图文件夹。
我希望在发生某些事情后每次渲染视图时都会显示局部视图。
- 您可以通过将控制器放入Views / Shared文件夹来共享控制器之间的视图。 然后每个控制器可以按名称渲染该视图。
- 您可以使用
Html.Partial()
在当前视图内渲染局部视图(可以在(1)中的控制器之间共享Html.Partial()
。 - 您可以使用
Html.Action()
在不同的控制器上调用一个动作,并在当前视图内渲染结果。 - 页面渲染后,您可以使用AJAX从不同的控制器加载部分视图。
@Html.Partial("~/Views/ControllerB/Index.cshtml")
是,
return PartialView("/path/view.cshtml");
你只需要制定path部分。
或者,你可以把部分视图的视图/共享然后只是返回:
return PartialView("view.cshtml");
只是一个旁注,因为我发现这个线程search相同的问题,但答案不工作:在果园CMS模块,你不能使用由Pittfall发布的整洁的解决scheme ,你必须使用相对path返回部分视图。 比方说你有一个控制器
Controllers/SiteController.cs
并且您想要返回部分视图
Shared/MessageList/Items
然后在你的行动方法,你需要写
return PartialView("../Shared/MessageList/Items");
@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>
- 在ASP.NET MVC中:从Razor视图调用Controller Action Method的所有可能的方法
- DataAnnotationsvalidation(正则expression式)在asp.net mvc 4 – 剃刀视图
- 使用entity framework(.edmx模型)&Razor视图&&将数据库logging插入多个表创buildMVC3的下拉列表
- Html.RenderPartial给我奇怪的重载错误?
- 命名约定来区分部分视图和普通视图
- 我如何在一个区域使用一个普通的_ViewStart?
- 我应该在MVC Razor中find共享的@helper函数
- 如何使用AJAX呈现部分表单元素
- 如何将IEnumerable列表传递给控制器在MVC包括checkbox状态?