为什么忽略renderAllHiddenFieldsAtTopOfForm配置设置?

时间:2015-03-16 15:59:52

标签: asp.net vb.net web-config

我遇到了这个问题的海报的完全相反的问题: Why isn't "renderAllHiddenFieldsAtTopOfForm" not working?

我已将renderAllHiddenFieldsAtTopOfForm明确设为true:

<system.web>
    <pages renderAllHiddenFieldsAtTopOfForm="true" />
</system.web>

尽管如此,渲染的输出包含两个不同的部分,其中包含系统生成的隐藏字段:一个位于顶部,另一个位于表单底部:

<div class="aspNetHidden">
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE4NDI1MTc3MzRkZI7H1ncHbGpdCuTIWztffomjhuKqOlUg2/NLTSuTAcPt" />
</div>

<div class="aspNetHidden">
    <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="C2EE9ABB" />
    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAATsr4X0euI6bC1nyD5GTh1SVvvE46VZo4PgfZC+nBCfTprQreIcKZCPCAR/ghE+h144RSSJ+WpNEsH2OOfrgDPYSZR3/cXf22QHuxsfDnv9/WdF+DPQdHKniJorPN8Mw6c=" />
</div>

任何人都可以解释为什么会这样吗?

相关内容:这是在IIS 7下运行的ASP.NET 4.5应用程序,使用Visual Studio 2013构建的VB.NET编写。可以在每个页面上观察到此行为,无论我删除renderAllHiddenFieldsAtTopOfForm都会发生这种情况是否设置,或者我将其值设置为truefalse

1 个答案:

答案 0 :(得分:1)

根据Reference Source,只有当InnerWriter是HttpWriter时,才会尊重renderAllHiddenFieldsAtTopOfForm属性。

你能检查一下你是否给Render方法提供了不同的编写器吗?

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
    base.Render(new MyHtmlTextWriter()); // <<<----
}