다음 방법을 사용하여 사용자 정의 컨트롤을 문자열로 렌더링합니다.ASP.NET 컨트롤에서 ViewState 및 EventValidation 데이터를 제거하는 방법은 문자열로 렌더링됩니까?
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();
그러나 출력에는 및 __VIEWSTATE
정보가있는 및 __VIEWSTATE
정보가있는 정보와 JavaScript가 포스트 백을 사용합니다.
모든 WebForms/ViewState 관련 코드가 렌더링하려고하는 컨트롤에 대해 생성되지 않도록 완전히 비활성화하는 방법이 있습니까? EnableViewState
을 false로 설정하고 .ascx
파일에서 EnabledViewState="false"
를 설정하는 것은 효과가없는 것처럼 보입니다.
그래도 전체 응용 프로그램에 해당하지 않습니까? –
@JamesJohnson 네, 그가 원하는 걸로하지 않습니까? 그는 말하기를 :'모든 WebForms/ViewState 관련 코드가 완전히 생성되지 않도록하는 방법이 있습니까? EnableViewState를 false로 설정하면 작동하지 않는 것 같습니다. " – Icarus
OP가 페이지 나 컨트롤에 대해 OP를 사용하지 않으려 고한다는 인상을 받았습니다 ... –