2017-11-16 10 views
0

jquery에서 webmethod로 값을 전달하려고합니다. 하지만 1 패스 값 webmethod가 시작되지 않습니다. 그리고 통과 가치 코드를 제거하면 제대로 작동하기 시작합니다. 무엇이 문제입니까? JS 코드.Webmethod가 작동을 멈춤

$(function() { 
    $.ajax({ 
     type: "POST", 
     url: "ContryCityDDL.aspx/GetCountry", 
     data: '{}', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (r) { 
      var ddlcontry = $("[id*=ddlcontry]"); 
      ddlcontry.empty().append('<option selected="selected" value="0">Please select</option>'); 
      $.each(r.d, function() { 
       ddlcontry.append($("<option></option>").val(this['Value']).html(this['Text'])); 
      }); 
     } 
    }); 

    $("#ddlcontry").change(function() { 
     alert($('option:selected', $(this)).val()); 
     var countyId = $(this).val(); 

     $("#HiddenField1").val($('option:selected', $(this)).val()); 


     $.ajax({ 
      type: "POST", 
      url: "ContryCityDDL.aspx/GetCity&countryId='"+countryId+"'", 
      data: '{}', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (r) { 
       var ddlcity = $("[id*=ddlcity]"); 
       ddlcity.empty().append('<option selected="selected" value="0">Please select</option>'); 
       $.each(r.d, function() { 
        ddlcity.append($("<option></option>").val(this['Value']).html(this['Text'])); 
       }); 
      } 
     }); 
    }); 
}); 

C#

[WebMethod] 
public static List<ListItem> GetCity(string countryId) 
{ 

    string constrng; 
      string query = "Select CityId,CityName From City"; 
    //string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; 

    constrng = "Data Source=(LocalDB)\\v11.0;AttachDbFilename='C:\\Users\\Abdul Basit Mehmood\\Desktop\\DropdownAJAX\\DropdownAJAX\\App_Data\\ContryCity.mdf';Integrated Security=True"; 

    using (SqlConnection con = new SqlConnection(constrng)) 
    { 
     using (SqlCommand cmd = new SqlCommand(query)) 
     { 
      List<ListItem> customers = new List<ListItem>(); 
      cmd.CommandType = CommandType.Text; 
      cmd.Connection = con; 
      con.Open(); 
      using (SqlDataReader sdr = cmd.ExecuteReader()) 
      { 
       while (sdr.Read()) 
       { 
        customers.Add(new ListItem 
        { 
         Value = sdr["CityId"].ToString(), 
         Text = sdr["CityName"].ToString() 
        }); 
       } 
      } 
      con.Close(); 
      return customers; 
     } 
    } 
} 

나 C# 코드에서 '스트링 countryId' 제거 할 때`및 VAR countyId = $ (이) .val(); & countryId = ' "+ countryId +"' "코드가 제대로 실행 JS에서.

+0

누군가가 말해 줄 수주십시오 GetCity (string countryId)가 작동하지 않는 이유는 무엇입니까? issu는 함수에서 몇 가지 인수를 읽고 싶을 때 무엇입니까? js에서 변경하면 아무런 차이가 없습니다. –

답변

2

당신은 당신의 아약스 호출에서 그 경우 사용 ? 문자에 쿼리 문자열로 ContryId를 전달하려는하지 &

같은
"ContryCityDDL.aspx/GetCity?countryId='" 
+0

아직 작동하지 않습니다! –

+0

컴파일러에서 오류를 표시하지 않지만 GetCity() 함수가 제대로 실행되고 있지만 GetCity (string countryId)로 변경하면 문제가 발생합니다. country가 필요합니다. 선택한 국가를 기준으로 도시 드롭 다운 목록을 채 웁니다. –

+0

@AbdulBasitMehmood, 컴파일러에서 클라이언트 코드에 대한 오류를 표시하지 않습니다 ... JS 코드 – Rahul

0

, ddlcontry 변경 기능에이 작동

$("#ddlcontry").change(function() { 
      alert($('option:selected', $(this)).val()); 
      var countryId = $(this).val(); 

      $("#HiddenField1").val($('option:selected', $(this)).val()); 


      $.ajax({ 
       type: "POST", 
       url: "ContryCityDDL.aspx/GetCity", 
       data: "{'countryId':'" + countryId + "'}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (r) { 
        var ddlcity = $("[id*=ddlcity]"); 
        ddlcity.empty().append('<option selected="selected" value="0">Please select</option>'); 
        $.each(r.d, function() { 
         ddlcity.append($("<option></option>").val(this['Value']).html(this['Text'])); 
        }); 
       } 
      }); 
     }); 

희망이 시도.