【发布时间】:2011-10-05 03:46:38
【问题描述】:
我正在使用以下方法将用户控件呈现为字符串:
Page pageHolder = new Page();
pageHolder.EnableViewState = false;
UserControl viewControl = (UserControl)pageHolder.LoadControl(path);
viewControl.EnableViewState = false;
System.Type viewControlType = viewControl.GetType();
HtmlForm tempForm = new HtmlForm();
tempForm.EnableViewState = false;
tempForm.Controls.Add(viewControl);
pageHolder.Controls.Add(tempForm);
StringWriter output = new StringWriter();
HttpContext.Current.Server.Execute(pageHolder, output, false);
string content = output.ToString();
但是,在输出中,有时隐藏字段包含 __EVENTVALIDTION 和 __VIEWSTATE 信息以及用于启用 PostBack 的 JavaScript。
有没有办法完全禁止为我要呈现的控件生成所有与 WebForms/ViewState 相关的代码?将EnableViewState 设置为false 并在.ascx 文件中设置EnabledViewState="false" 似乎不起作用。
【问题讨论】: