2012-01-04 58 views
0

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

A.aspx

我使用jQuery来访问它加载控件(ASCX),其中包含一个GridView一个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)一切都很好,它不需要将其放置在窗体中。

我错过了什么?

+0

它不能是一个形式里面,但谁知道只有一个你。这种异常也是防止恶意错误并提供明确错误信息的一种方法。只有控制回发需要嵌套在HtmlForm控件中。 http://msdn.microsoft.com/en-us/library/system.web.ui.page.verifyrenderinginserverform%28v=VS.100%29.aspx – 2012-01-04 09:15:54

+0

@tim请将您的评论转换为答案。所以我可以检查它。 – 2012-01-04 09:44:51

回答