在ajax调用c#代码后丢失隐藏字段值

时间:2013-06-25 03:38:14

标签: c# json hidden-field

使用jquery 1.7.2和.net 4.0

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

    <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

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

1 个答案:

答案 0 :(得分: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