asp.net-mvc – 在Controller或其他地方渲染部分字符串
发布时间:2020-12-16 00:02:45 所属栏目:asp.Net 来源:网络整理
导读:所以基本上我有一个局部视图,可以为我建立一个很好的表.我想每周通过电子邮件发送给我的用户.我不想再次基本复制模板,而是希望将模型转发给控制器,并将相应生成的HTML作为字符串接收. 是否可以在Controller中执行此操作,我觉得它应该是一个非常简单的过程.
所以基本上我有一个局部视图,可以为我建立一个很好的表.我想每周通过电子邮件发送给我的用户.我不想再次基本复制模板,而是希望将模型转发给控制器,并将相应生成的HTML作为字符串接收.
是否可以在Controller中执行此操作,我觉得它应该是一个非常简单的过程. 解决方法
把它放到Helper文件中:
public static string RenderViewToString(ControllerContext context,string viewName,object model) { if (string.IsNullOrEmpty(viewName)) viewName = context.RouteData.GetRequiredString("action"); ViewDataDictionary viewData = new ViewDataDictionary(model); using (StringWriter sw = new StringWriter()) { ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(context,viewName); ViewContext viewContext = new ViewContext(context,viewResult.View,viewData,new TempDataDictionary(),sw); viewResult.View.Render(viewContext,sw); return sw.GetStringBuilder().ToString(); } } 然后从控制器你可以像这样调用它: var order = orderService.GetOrder(id); var orderPrint = MyHelper.RenderViewToString(this.ControllerContext,"_OrderView",order); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC中的动态(运行时生成)窗体
- asp.net-mvc – MVC Razor ViewEngine不是线程安全的吗?
- ASP.NET身份Windows身份验证(混合模式 – 表单Windows)
- ASP.NET DropDownList不保留所选项目在回发
- ASP.Net MVC3 Azure – 我是否需要会员提供商存储过程?
- 跨域学习笔记1--跨域调用webapi
- asp.net-mvc – Can Meteor可以运行Microsoft后端(即EF和AS
- 缓存asp.net c#的数据列表
- asp.net-mvc-3 – MVC3未终止字符串常量语法错误
- asp.net-mvc-3 – 在MVC视图中使用条件编译符号
推荐文章
站长推荐
热点阅读