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类,则会看到这些隐藏字段是在渲染阶段创建的(请查看方法RenderViewStateFieldsEndFormRenderHiddenFields)。

您可能可以使用反射来获取部分/全部数据(例如内部属性Page.ClientState)。

但是我不认为有一个干净的解决方案(尽管说实话,我不太了解您要实现的目标)。

关于c# - 在C#中访问__VIEWSTATE和__EVENTVALIDATION,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12786199/

10-12 21:20