这是一个场景:假设我的网站有两个控制器,负责显示不同类型的内容 - 页面和文章。我需要将部分视图嵌入到我的母版页中,该母版页将列出按某些条件过滤的页面和文章,并显示在每个页面上。我无法在我的主页上设置模型(我是对的吗?)。如何使用 Html.RenderPartial 解决此任务?
[编辑]
是的,我可能会创建单独的部分视图来列出文章和页面,但是仍然存在一个障碍,我不能也不应该在母版页上设置模型。我需要以某种方式说“这里是页面”作为我的 renderpartial 以及文章的参数。母版页中数据库数据的 renderpartial 的整个概念对我来说有点模糊。
如何创建一个 HtmlHelper 扩展方法,允许您在控制器上的操作上调用部分视图结果。
就像是
public static void RenderPartialAction<TController>(this HtmlHelper helper, Func<TController, PartialViewResult> actionToRender)
where TController : Controller, new()
{
var arg = new TController {ControllerContext = helper.ViewContext.Controller.ControllerContext};
actionToRender(arg).ExecuteResult(arg.ControllerContext);
}
然后你可以在你的母版页中使用它,例如
<% Html.RenderPartialAction((HomeController x) => x.RenderPartial()) %>
并在您的控制器中使用适当的方法
public PartialViewResult RenderPartial()
{
return PartialView("~/Path/or/View",_homeService.GetModel())
}
无论如何,这就是我的 2 美分
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)