如何从和aspx.cs调用用户控件方法

时间:2017-10-20 17:09:08

标签: javascript c# asp.net ajax

我正在测试如何对用户控件方法进行AJAX调用。通过做一些研究,我知道我们不能直接公开JavaScript代码可以使用的用户控制方法。所以我在 aspx.cs 文件中创建了一个公共静态方法:

Javascript代码:

function myJavascriptFunction(param1) {
    $.ajax({
        type: ""POST"",
        contentType: ""application/json; charset=utf-8"",
        url: "Greetings.aspx/GreetingsTest",
        data: ""{'newValue': param1}"",
        success: OnSuccess,
        failure: function(response) {
            alert(response.d);
        }
    });
}

ASPX.cs的C#代码:

[System.Web.Services.WebMethod]
public static void GreetingsTest(string newValue)
{            
    var greetingsProcessor = new GreetingsProcessorUserControl();
    greetingsProcessor.EnableDropDownList();    
}

用户控件的C#代码(ascx.cs):

public void EnableDropDownList()
{
   greetingDropDownList.Enabled = true;
}

AJAX请求调用以及ASPX.CS方法中的公共方法工作正常。调试时我可以到达GreetingsTest方法。但是,在执行这行代码时:

 greetingsProcessor.EnableDropDownList();

要启用下拉列表,我的 greetingDropDownList 会获得nullable object的例外。

我猜测为什么会发生这种情况是因为在创建GreetingsProcessorUserControl的新实例时:

var greetingsProcessor = new GreetingsProcessorUserControl();

在从AJAX请求进行调用时,是否有人知道如何为用户控件保留当前对象?

0 个答案:

没有答案