Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET C中使用jQuery向Web方法传递多个参数_C#_Jquery_Asp.net_Webmethod - Fatal编程技术网

C# 在ASP.NET C中使用jQuery向Web方法传递多个参数

C# 在ASP.NET C中使用jQuery向Web方法传递多个参数,c#,jquery,asp.net,webmethod,C#,Jquery,Asp.net,Webmethod,我使用WebMethod服务创建了bind下拉列表 我有多个下拉列表,需要相互依赖地绑定,就像下拉列表的级联一样,但当为一个选定值传递值时,它在我的web方法上调试时显示为null WebMethod: public static List<Company> GetCompanies(string CountryCode, string CompanyCode) { GetInitiatorList.MasterDataServiceClie

我使用WebMethod服务创建了bind下拉列表 我有多个下拉列表,需要相互依赖地绑定,就像下拉列表的级联一样,但当为一个选定值传递值时,它在我的web方法上调试时显示为null

WebMethod:

 public static List<Company> GetCompanies(string CountryCode, string CompanyCode)
        {
            GetInitiatorList.MasterDataServiceClient oClient = new GetInitiatorList.MasterDataServiceClient();
            Almarai.GiveAway.GetInitiatorList.ALM_COMPANY_M[] initiatorsList = oClient.GetActiveCompanies(CountryCode, CompanyCode)                                                                                 List<Company> Companyes = new List<Company>();
            foreach (Almarai.GiveAway.GetInitiatorList.ALM_COMPANY_M company in initiatorsList)
            {
                Companyes.Add(new Company()
                {
                    CountryCode = company.CompanyCode,
                    CompanyName = company.CompanyName
                });
            }
            return Companyes;
        }
JQuery

 $('#ddlCountry').change(function (e) {

   var selectedCountry = $('#ddlCountry').val();
   $.ajax({
            type: "POST",
            url: "Header.aspx/GetCompanies",
            data: JSON.stringify({ CountryCode: selectedCountry, CompanyCode: 'SAU' }),
            dataType: "json",
            contentType: "application/json",
            success: function (res) {
            $.each(res.d, function (data, value) {
            $("#ddlCompany").append($("<option></option>").val(value.CompanyId).html(value.CompanyName));

            $('#ddlCompany').change(function (e) {
Aspx:


如果我做错了,请引导我

我想你不需要把它严格化

而不是:

data: JSON.stringify({ CountryCode: selectedCountry, CompanyCode: 'SAU' }),
尝试:


要从下拉列表中获取当前选定的值:

$('#ddlCountry').val();
$('#ddlCountry :selected').text();

要从下拉列表中获取当前选定的文本,请执行以下操作:

$('#ddlCountry').val();
$('#ddlCountry :selected').text();
您可以通过在ajax调用中指定如下内容发送硬编码文本,首先检查ajax调用是否正常工作:

$.ajax({
    type: "POST",
    url: "Header.aspx/GetCompanies",
    data: JSON.stringify({ CountryCode: 'USA', CompanyCode: 'SAU' })
    ....
然后您可以检查是否正确分配了下拉列表值?若你们只想要文本而不想要值,那个么你们可以像我在上面提到的那个样使用。我想这会解决你的问题。如果不是,请告诉我

=============阅读评论后更新======================

我已经根据您的示例创建了一个示例演示。由于我没有您所拥有的服务代码,因此对其进行测试非常简单,以检查其是否正常工作,或者它将给我与您相同的错误

我所做的测试对你们来说可能是微不足道的,但请检查,它对我有效,并给我正确的结果。这是Route配置文件的屏幕截图,看看红色的圆圈,我必须将其更改为web方法

为简单起见,此处为Contact.aspx页面的chrome开发工具屏幕截图

最后是Contact.aspx->GetCompanies web方法断点点击屏幕截图,为了简单起见,这里我修改了方法体,只是为了检查数据绑定是否正常工作


所以,这是我的工作。请您逐一检查所有步骤,并让我知道。如果对您有帮助,那将是我的荣幸。

您需要.aspx后缀吗

Try like this url: "Header/GetCompanies", 

非常愚蠢的一点,我错过了这里的web方法,正如你们所看到的,我正在返回公司代码

CountryCode=company.CompanyCode, CompanyName=company.CompanyName

在Html中,我试图绑定CompanyId,如您在这里看到的:

$("#ddlCompany").append($("<option></option>").val(value.CompanyId).html(value.CompanyName));
所以对于明显的区域,它将为空或0


我只是将value.CompanyId替换为CompanyCode,它现在可以很好地工作

在web浏览器中,使用F12工具和“网络”选项卡来计算ajax发布的内容。添加但不是它触发web方法硬编码的值正在工作,而是$'ddlCountry'.val;无法使用服务绑定这些下拉列表您是否可以在调试器中检查您的服务值,这些值是否正常?即使已成功绑定第一个下拉列表,我仍检查了它的到来我希望这些值已从第一个下拉列表绑定list@user14304386我重新编辑了我的答案,请检查一下,让我知道。