加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – RegisterForEventValidation只能在渲染过程中调用

发布时间:2020-12-15 23:33:31 所属栏目:asp.Net 来源:网络整理
导读:我有一个webmethod将从jquery ajax调用: [WebMethod]public string TestMethod(string param1,string param2){ StringBuilder b = new StringBuilder(); HtmlTextWriter h = new HtmlTextWriter(new StringWriter(b)); this.LoadControl("~/Pages/Controls/
我有一个webmethod将从jquery ajax调用:
[WebMethod]
public string TestMethod(string param1,string param2)
{
    StringBuilder b = new StringBuilder();
    HtmlTextWriter h = new HtmlTextWriter(new StringWriter(b));
    this.LoadControl("~/Pages/Controls/Listing.ascx").RenderControl(h);
    string controlAsString = b.ToString();
    return controlAsString;
}

(这是一个非静态的方法,我们可以打它,这不是一个问题)

当执行loadControl()方法时,我会收到一个错误:RegisterForEventValidation只能在Render中调用.

我已经为当前的aspx,禁用的viewstate包含了EnableEventValidation =“false”.但是我仍然会遇到同样的错误.有什么想法吗?

解决方法

解决方案是将页面的事件验证作为
<%@ Page ............ EnableEventValidation =“false”%>

并通过在C#代码中添加以下方法来覆盖VerifyRenderingInServerForm

public override void VerifyRenderingInServerForm(Control control)
{
    /* Confirms that an HtmlForm control is rendered for the specified ASP.NET
       server control at run time. */
}

参考下面的链接
http://www.codeproject.com/Questions/45450/RegisterForEventValidation-can-only-be-called-duri

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读