如何处理,ASP.NET中回发或回调参数无效

如何处理,ASP.NET中回发或回调参数无效,第1张

在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。解决方案:1、根据提示在页面中增加 但如此一来你的网页安全性会受到一定的影响。2、再一次根据提示使用ClientScriptManager.RegisterForEventValidation 去解决问题,查找原因,本人在网页中使用了dropdownlist控件在控件中增加了数据,原本控件的内容是空的因此对验证没有什么影响,但是如今增加数据,Visual studio2005需要对这个增加的数据进行验证,这一点可以从网页的源码中看出来,这个隐藏控件中的value是不一样的。这是因为Asp。net在生成客户端脚本时会去遍历Dropdownlist所有的item,这些值到时候postback到服务器中因此必须把这些item的值记录下来并放入到Page中。也就是刚才提到的那个隐藏控件中的value中。

很明显的错误, GetDataTable方法的参数是string类型,而你写的这句

DataTable dt= db.GetDataTable(db.GetCommandProc("sys_reg_all"))

是传给了一个SqlCommand类型的参数,参数类型不符合,肯定要报错

你可以修改GetTabaTable方法,或者重写此方法如下:

public DataTable GetDataTable(SqlCommand sc)

{

SqlDataAdapter da = new SqlDataAdapter(sc)

DataTable dt = new DataTable()

da.Fill(dt)

return dt

}

然后你再运行你的第一段代码,应该可能通过了, 不过就算通过了,我也觉得你这整体的逻辑结构有问题, 应该好好再调整下

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

//用HiddenField保存传进来的值

HiddenField1.Value = this.Request.QueryString["EditionID"]

}

}

protected void Button1_Click(object sender, EventArgs e)

{

//第一个按钮:

HiddenField1.Value = "cn"//或者="en"自己去改

this.Response.Redirect("xxx.aspx?ppp1=dsfsd&EditionID=" + HiddenField1.Value)

}

protected void Button2_Click(object sender, EventArgs e)

{

//第二个按钮:

HiddenField1.Value = "en"//或者="en"自己去改

this.Response.Redirect("xxx.aspx?ppp1=dsfsd&EditionID=" + HiddenField1.Value)

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/808607.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-29
下一篇2023-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存