2015-01-22 5 views
1

Jendler의 컨트롤러 동작에서 Kendo Dropdownlist를 읽으려고합니다. 코드는Jquery의 컨트롤러 동작에서 Kendo Dropdownlist를 읽는 방법

$("#CountryName").kendoDropDownList({ 
    dataTextField: "Description", 
    dataValueField: "Id", 
    dataSource: { 
     transport: { 
      read: { 
       dataType: "jsonp", 
       url: "Shared/CountryAjax" 
      } 
     } 
    } 
}); 

[HttpPost] 
public ActionResult CountryAjax(string countryId) 
{ 
    var countries = this._decodeBL.GetAllCountriesList(); 

    return new JsonResult 
    { 
     Data = new SelectList(countries, "Id", "Description", "Canada") 
    }; 
} 

그러나 결코 CountryAjax를 실행하지 않습니다. 이것에 대한 도움이 필요해. 감사.

답변

0

코드에서 두 가지 버그가 발견되었습니다. 먼저, 서버 메소드에서 [HttpGet] 주석을 사용해야합니다. 둘째, 서버 메소드에서 countryId를 수신해서는 안됩니다.

아래의 고정 코드를 참조하십시오.

$("#CountryName").kendoDropDownList({ 
    dataTextField: "Description", 
    dataValueField: "Id", 
    dataSource: { 
     transport: { 
      read: { 
       dataType: "jsonp", 
       url: "Shared/CountryAjax" 
      } 
     } 
    } 
}); 


[HttpGet] 
public ActionResult CountryAjax() 
{ 
    var countries = this._decodeBL.GetAllCountriesList(); 

    return new JsonResult 
    { 
     Data = new SelectList(countries, "Id", "Description", "Canada") 
    }; 
} 
+0

죄송합니다. 아직 작동하지 않습니다. DropDownList가 표시되지 않습니다. URL이 맞습니까? 나는 url.content가 사용되는 것을 보았다. 나는 틀린 URL일지도 모른다. – user585440

+0

json 대신 jsonp를 사용해야합니까? jsonp를 사용하는 경우 서버를 구성해야하며 url은 해당 서버를 가리켜 야합니다. – CuriousSuperhero

+0

귀하의 URL이 잘못되었다고 생각합니다. jsonp -> json을 변경하고 Chrome 개발자 도구 또는 Fiddler를 사용하여 http 트래픽을 검사하도록 권하고 싶습니다. – CuriousSuperhero

관련 문제