在ASP.NET中,是否可以将__VIEWSTATE和__EVENTVALIDATION的隐藏字段的值放入C#(服务器端)的变量中,比如说重写Render
方法?
我试过了:
protected override void Render(HtmlTextWriter writer)
{
StringBuilder stringBuilder = new StringBuilder();
StringWriter stringWriter = new StringWriter(stringBuilder);
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlWriter);
string temp = stringBuilder.ToString();
}
这给了我整个ASP.NET的输出。我们可以通过使用字符串函数来获取值,但是我发现它不是一个非常干净的解决方案。有一个更好的方法吗?
我真正想要的是发出第一个请求时而不是回发完成后的__VIEWSTATE和__EVENTVALIDATION的值。那是在第一个请求发出时形成输出流的时候。
最佳答案
如果使用Reflector查看Page
类,则会看到这些隐藏字段是在渲染阶段创建的(请查看方法RenderViewStateFields
和EndFormRenderHiddenFields
)。
您可能可以使用反射来获取部分/全部数据(例如内部属性Page.ClientState
)。
但是我不认为有一个干净的解决方案(尽管说实话,我不太了解您要实现的目标)。
关于c# - 在C#中访问__VIEWSTATE和__EVENTVALIDATION,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12786199/