C# 以编程方式从javascript设置请求[“uuuEventTarget”]
我正在编写ASP.NET应用程序,我应该在C# 以编程方式从javascript设置请求[“uuuEventTarget”],c#,javascript,asp.net,C#,Javascript,Asp.net,我正在编写ASP.NET应用程序,我应该在Page\u Load中检查Request[“\u EVENTTARGET”]的服务器端值。我需要从客户端编程设置它的值。 我尝试通过以下方式设置它: document.getElementById('__EVENTTARGET').value = "my_value"; 但它不起作用。你能帮我吗,为什么?谢谢大家! UPD: 我在表单.submit()的第行出现“拒绝访问”异常为什么?ASP.NET使用该变量来存储任何回发的发送方,因此我认为每次都会
Page\u Load
中检查Request[“\u EVENTTARGET”]
的服务器端值。我需要从客户端编程设置它的值。
我尝试通过以下方式设置它:
document.getElementById('__EVENTTARGET').value = "my_value";
但它不起作用。你能帮我吗,为什么?谢谢大家!
UPD:
我在表单.submit()的第
行出现“拒绝访问”异常
为什么?ASP.NET使用该变量来存储任何回发的发送方
,因此我认为每次都会覆盖您的值。
您可以尝试调用
__doPostBack('my_value','any_other_argument')
通过JS,然后在Page\u Load
事件中检查该值
为此,请确保删除ASPX文件第一行中的EventValidation
属性
以下是如何在代码隐藏中处理它:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
string _evt = this.Request["__EVENTTARGET"]; // 1st parameter
string _eva = this.Request["__EVENTARGUMENT"]; // 2nd parameter
switch (_evt)
{
case "my_value":
//do anything here
break;
default:
break;
}
}
}
编辑:
按照您的示例进行编辑:
JS:
这是由于表单无法提交的拒绝访问错误,您只需重写框架生成的函数并处理异常,直到表单未提交为止,只需继续调用此函数即可。我遇到了同样的问题,现在已经解决了。 在页面上添加此功能。 好运
是的,我绑定了它,但是当我传递按钮的ClientID时,我出现了“拒绝访问”错误。我更新了我的帖子,并为OnClientClick添加了JS函数。但我也收到了“拒绝访问错误”不,不,你这样做是错误的。删除按钮的OnClick事件,仅使用客户端代码作为示例,该代码将负责向服务器发回帖子。谢谢你的回答。在根据您的建议更改代码后,我已更新了我的帖子。这是IE的安全问题。请参见:
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
__doPostBack('my_value','any_other_argument')
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
string _evt = this.Request["__EVENTTARGET"]; // 1st parameter
string _eva = this.Request["__EVENTARGUMENT"]; // 2nd parameter
switch (_evt)
{
case "my_value":
//do anything here
break;
default:
break;
}
}
}
function ShowUploadDialog() {
document.getElementById('<%= uplReportLogo.ClientID %>').click();
document.getElementById('<%= hdnInvokeFileUpload.ClientID %>').value = $('input[type=file]').val();
__doPostBack('fileUpload', '');
}
<asp:Button runat="server" ID="btnReportImage" Text="Load Image..." CssClass="button action load"
OnClientClick="ShowUploadDialog();" />
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
string _evt = this.Request["__EVENTTARGET"]; // 1st parameter
string _eva = this.Request["__EVENTARGUMENT"]; // 2nd parameter
switch (_evt)
{
case "fileUpload":
btnReportImage_Click();
break;
default:
break;
}
}
}
protected void btnReportImage_Click() // remove sender & event arguments here, you do not need them
{
//your code
}
function __doPostBack(eventTarget, eventArgument) {
try {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
catch (e) {
__doPostBack(eventTarget, eventArgument);
}
}