asp.net – 来自masterpage的Html.RenderPartial调用

前端之家收集整理的这篇文章主要介绍了asp.net – 来自masterpage的Html.RenderPartial调用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一个场景:假设我有两个控制器的站点负责显示不同类型的内容页面文章.我需要将Partial View嵌入到我的母版页中,该母版页将列出使用某些条件过滤的页面文章,并显示在每个页面上.我无法在我的母版页上设置模型(我是对的吗?).如何使用 Html.RenderPartial解决此任务?

[编辑]
是的,我可能会为列出文章页面创建单独的部分视图,但仍有一个障碍,我不能也不应该在母版页上设置模型.我需要以某种方式说“这里是页面”作为我的renderpartial的参数,也是文章的参数. renderpartial的整个概念与来自masterpages中的数据库的数据对我来说有点模糊.

解决方法

如何创建一个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美分

猜你在找的asp.Net相关文章