注入gridView需要VerifyRenderingInServerForm。但为什么?

时间:2012-01-04 09:04:24

标签: asp.net loadcontrol

Asp.net

A.aspx

我正在使用JQuery访问加载包含GridView的控件(ascx)的ashx文件。控制内容正在注入页面......

当我这样做时:

   StringWriter writer = new StringWriter();
   HttpContext.Current.Server.Execute(page, writer, false);
   string output = writer.ToString();

它告诉我GridView必须放在表单部分。

所以我创建了我的页面

public class MyPage: Page
    {
        public override void VerifyRenderingInServerForm(Control control)
        {
            //base.VerifyRenderingInServerForm(control);
        }
    }

并在其中我重写此方法。我正在使用我的页面,一切都很好。

问题是为什么?为什么它必须是一种形式?它没有任何输入!

另外,如果我的ascx仅包含<asp:Label ( runatServer),一切都很好,并且不需要将其放在表单中。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

一定不能在表格内,但唯一知道的就是你。此异常也是一种防止恶意错误并提供明确错误消息的方法。只有可以回发的控件才需要嵌套在HtmlForm控件中。