c# - 在 C# 中访问 __VIEWSTATE 和 __EVENTVALIDATION

标签 c# asp.net viewstate eventvalidation

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/

相关文章:

javascript - 部分回发后组合框启用状态重置

c# - 如何在.NET中反序列化 { "result": [ true, [1,2] ] }

c# - SignalR 中的匿名私有(private)聊天

asp.net - 如何通过单击文本而不是 +/- 来展开 .NET TreeView 节点

c# - 在我的代码隐藏中创建新的 CheckBox 时,如何连接客户端 Javascript 函数调用?

asp.net - masterpages/views/css 问题

java - 使用Java提交表单

asp.net - 当客户端通过每个请求通过多个 IP 连接时,ViewState 解码失败

c# - 将我当前的光标位置显示为当前行和当前列?

c# - 使用 web.config 时,配置类不可用