在 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/