0

使用 jquery 1.7.2 和 .net 4.0

我有一个 json ajax 调用,它在我的表单上设置了一个 asp 隐藏字段的值。在单步执行后面的代码时,我可以看到设置了隐藏字段的值,但是当代码返回到 aspx 代码时,该值是空的。ASP 代码:

    <asp:HiddenField ID="hidden1" runat="server" />
    //dropdownlist on change event calls the function below:
     function getReport() {
            var data = { MethodName: 'myMethod', value1: value1 }
            var options = {
                url: '<%=ResolveUrl("myPage.aspx") %>',
                async: false,
                data: data,
                datatype: 'text',
                type: 'POST',
                success: function () {
                    var returnedData = $("#hidden1").val();
                    alert('returned data = ' + returnedData);
                }
            }
            $.ajax(options);
//also tried alerting the returned data here.. still empty
        }

后面的c#代码:

#region AJAX
        if (Request.Form["MethodName"] == "myMethod")
        {

            hidden1.Value = "please just pass this value!!!";
            return;
        }
        else
        {
            //do something different.
        }
        #endregion

我已经简化了我的代码,希望不会太多。我仔细检查了我的代码,以确保隐藏字段值没有在代码的其他地方设置。

4

1 回答 1

0

由于 ajax 调用,隐藏字段不会被更新。您必须使用 ajax 调用返回的数据。

 function getReport() {
        var data = { MethodName: 'myMethod', value1: value1 }
        var options = {
            url: '<%=ResolveUrl("myPage.aspx") %>',
            async: false,
            data: data,
            datatype: 'text',
            type: 'POST',
            success: function (returnedData) {
                alert('returned data = ' + returnedData);
            }
        }
        $.ajax(options);
    }

后面的代码:

#region AJAX
if (Request.Form["MethodName"] == "myMethod")
{
     return "please just pass this value!!!";
}
else
{
     //do something different.
}

#endregion
于 2013-06-25T04:06:03.620 回答