MVC如何将用户控件(分部视图,RenderPartial,ViewUserControl)内容转换为字符串并输出

// 将用户控件转换为字符串

01    public static string RenderPartialToString(string file, object view)
02    {
03         ViewDataDictionary vd = new ViewDataDictionary(view);
04         ViewPage viewPage  = new ViewPage { ViewData= vd };
05         Control control = viewPage.LoadControl(file);
06     
07         viewPage.Controls.Add(control);
08     
09         StringBuilder str = new StringBuilder();
10         using (StringWriter stringWriter = new StringWriter(str))
11         {
12             using (HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter))
13             {
14                 viewPage.RenderControl(htmlTextWriter );
15             }
16         }
17     
18         return str.ToString();
19    }
 
 
 
// 调用它
 
1    public string GetHtmlFromPartial()
2    {
3          
4        
5     
6         string s = RenderPartialToString("~/Views/usercart.ascx", null);
7     
8         return s;
9    }
本文转自博客园张占岭(仓储大叔)的博客,原文链接:MVC如何将用户控件(分部视图,RenderPartial,ViewUserControl)内容转换为字符串并输出,如需转载请自行联系原博主。
时间: 2024-09-22 19:28:16

MVC如何将用户控件(分部视图,RenderPartial,ViewUserControl)内容转换为字符串并输出的相关文章

ASP.NET MVC加载用户控件后如何获取其内控件值或赋值

有网友看了这篇<ASP.NET MVC加载ASCX之后,并为之赋值>http://www.cnblogs.com/insus/p/3643254.html 之后,问及Insus.NET,不想在控件制器内进行赋值,而是想在视图中使用jQuery来获取用户控件内的控件值或是为它们赋值.那需要怎样来做呢? 下面Insus.NET花上少少时间,做个简单的例子,演示与分享实现的方法. 实现之前,先修改一下AscxUtility.cs这个类中的 public static HtmlString Rende

自定义用户控件中加入背景等内容后怎么有时在引入文件中不显示?

问题描述 我在自定义用户控件假定文件名userControl1.ascx布局中如引入背景图片,路径如为../images/1.jpg,而在引入文件如default.aspx中加入控件后不显示背景图片.文件相对图片的路径是images/1.jpg,而在userControl1.ascx将路径改为images/1.jpg就可以显示了.挺奇怪!那如果在其他路径下的文件要使用userControl1.ascx文件,又该如何处理呢?偶是本论坛的新成员,虽然我经常来CSDN论坛,但很少发帖子.所以囊中羞涩,

公司要把webform转换成mvc 但是用户控件和模板页怎么办

问题描述 webform的用户控件和模板页都有一个cs文件与之对应处理其中的逻辑现在要转换成mvc.....那些用户控件怎么办呢?比如有时候一个按钮点击事件的处理函数这些以后难道都要用ajax实现或者每次按钮点击都要换一个页面用controller来处理所有的逻辑?按钮还好说如果是下拉菜单的改变事件这些只能使用ajax了? 解决方案 本帖最后由 careercup160 于 2013-03-06 06:09:04 编辑解决方案二:蛋疼至极..解决方案三:用ajax把,少年,如果代码都在的话其实不

ASP.NET MVC中加载WebForms用户控件(.ascx)

原文:ASP.NET MVC中加载WebForms用户控件(.ascx) 问题背景 博客园博客中的日历用的是ASP.NET WebForms的日历控件(System.Web.UI.WebControls.Calendar),它会为"上一月"."下一月"的链接生成"__doPostBack()"的js调用,如下图: 目前发现它会带来两个问题: 1. 不支持IE10: 2. 某些电脑不允许执行__doPostBack. 问题提炼 前提: 我们想以最低

ASP.NET MVC如何显示UserControl控件(扩展篇)

昨晚Insus.NET有怀旧一下<念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件>http://www.cnblogs.com/insus/p/3641610.html 那仅是小小尝试,还有很多不明的地方. 那一篇其中有Render用户控件ascx的.如今Insus.NET想重构它一下,让步其能在Action或是Razor语法中使用. 创建一个AscxUtility.cs,这们我们可以在应用程序中多个地方使用. 这样我们就可以重构一下昨晚那个public A

ASP.NET数据列表控件的分页总结(三)Asp.Net可定制分页用户控件

前一篇文章是采用存储过程来进行分页的,但是存在缺陷,没有代码重用,针对不同的表或者不同的视图都需要去编写存储过程,这样很麻烦,代码的重用性很差.本文将通过一个用户控件来实现数据分页的页面层以达到代码重用的目的. 分页是借助用户自定义控件来实现,在这里主要有以下两种方法来实现: (一).吴旗娃的AspNetPager组件(推荐使用) 首先,下载该dll文件. 在工具箱中,鼠标右键,"选择项",添加刚下载的dll文件. 然后,将会在工具箱中看到一个AspNetPager分页控件,拖到页面,

VS2008用户控件????

问题描述 请问:我在VS2008里建的用户控件为什么在转到设计视图的时候,页面上一片空白一个字符都没有,可是代码视图却有字符,而且这个用户控件功能是好的,语法没错误,可以是执行,代码如下:<%@ControlLanguage="C#"AutoEventWireup="true"CodeFile="news.ascx.cs"Inherits="UserControl_news"%><styletype=&quo

MVC进阶学习--HtmlHelper控件解析(四)

1.RenderPartialExtensions类      RenderPartialExtensions类主要扩展了一个方法 RenderPartial()      RenderPartial(string partialViewName);      RenderPartial(string partialViewName,ViewDataDictionary viewData);      RenderPartial(string partialViewName,object mod

timer-DEV 第三方控件中的使用中自定义用户控件里面的Timer 控件的使用

问题描述 DEV 第三方控件中的使用中自定义用户控件里面的Timer 控件的使用 用户控件中使用的代码如下:/asp:ScriptManager /asp:Timer /asp:Literal /asp:UpdatePanel 为什么到事件刷新的时候会报 " Sys.WebForms.PageRequestManagerParserErrorException: 未能分析从服务器收到的消息." 这个错误呢?请指教一下 解决方案 asp不会,jsp会一点,祝你好运!