加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 04:25:39 所属栏目:asp.Net 来源:网络整理
导读:这是一个场景:假设我有两个控制器的站点负责显示不同类型的内容 – 页面和文章.我需要将Partial View嵌入到我的母版页中,该母版页将列出使用某些条件过滤的页面和文章,并显示在每个页面上.我无法在我的母版页上设置模型(我是对的吗?).如何使用 Html.Render
这是一个场景:假设我有两个控制器的站点负责显示不同类型的内容 – 页面和文章.我需要将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美分

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读