从jQuery发射服务器端事件 - __EVENTARGUMENT不存在

时间:2009-09-23 21:03:37

标签: asp.net jquery

我正在尝试通过jQuery触发表单提交并激活特定的服务器端事件。

客户端代码:

$("input[name=__EVENTARGUMENT]").val("SomeArg");
form = $("body form");
form.submit(); 

服务器端代码:

protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack)
        {
            if (Request["__EVENTARGUMENT"] == "SomeArg")
            {
                //do some stuff
            }
        }
    }

问题是,“__ EVENTARGUMENT”隐藏输入不存在。我发现如果我添加一个带有autopostback = true的ASP.net服务器控件下拉列表,则会创建EVENTARGUMENT隐藏输入。是否有更简洁的方法让ASP.net创建这些隐藏的输入,并允许我在不添加页面上实际不需要的控件的情况下获取服务器端的值?

1 个答案:

答案 0 :(得分:2)

将asp.net HiddenField control添加到页面

但是你有一个问题就是获得这个控制id,as.net自动生成,你可以使用隐藏字段的ClientID属性解决这个问题,如this article mentions