2017-11-17 2 views
0

일부 데이터를 드롭 다운에 표시하고 자동 완성을 구현하려고합니다. 이를 위해 나는 select2, jQuery 플러그인을 사용하고있다. 내 문제는 검색 상자에 작성된 검색어가 매개 변수로 컨트롤러의 메소드에 전달되지 않는다는 것입니다. 이것은 내 아약스 요청입니다 :검색어를 매개 변수로 전달할 수 없음

$('#someId').select2({ 
     minimumInputLength: 1, 
     allowClear: true, 

     ajax: { 
      url: "/controllerName/methodName", 
      dataType: "json", 
      type: "GET", 
      data: function (params) { 

       var queryParameters = { 
        term: params.term 

       } 
       return queryParameters; 

      }, 

      processResults: function (data) { 
       return { 
        results: $.map(data, function (students) { 
         return { 
          text: students.name, 
          id: students.id 
         } 
        }) 
       }; 
      } 
     } 
    }); 

그리고 이것은 HTML입니다 : 내 Ajax 요청에 아무 잘못이

[HttpGet] 
     public IActionResult GetStudents(string searchTerm) 
    { 
     //some code 
    } 

있습니까 :

<div class="form-group"> 
<label asp-for="someId" class="col-md-2 control-label"></label> 
<div class="col-md-4"> 
<select asp-for="someId" class="form-control" style="display:table-cell; 
width:100%"></select> 
</div> 
</div> 

이 컨트롤러 내 방법은 무엇입니까?

+0

컨트롤러 메소드를 참조 할 수 있습니까? 브라우저의 네트워크 도구를 확인하여 값이 올바르게 전송되었는지 확인 했습니까? (GET 요청이므로 요청 URL의 쿼리 문자열에있을 것입니다.) 그것은 클라이언트 측 또는 서버 측 문제인지 여부를 알려줍니다. – ADyson

+0

@ADyson 브라우저의 네트워크 도구를 확인했고 매개 변수가 URL의 쿼리 문자열에 있습니다. – eli

답변

0

"term"이라는 변수를 검색 매개 변수로 보내고 있습니다. 그러나 컨트롤러는 "searchTerm"이라는 변수를 기대하고 있습니다.

변수 이름이 일치해야합니다. 그렇지 않으면 컨트롤러가 쿼리 문자열에서 어떤 것을 골라야하는지 어떻게 알 수 있습니까?

특히 브라우저에서 여러 매개 변수를 보내는 매우 일반적인 상황을 고려하십시오. 이 시점에서 올바른 매개 변수가 컨트롤러 메서드의 올바른 변수와 일치하도록 명명 규칙이 있습니다.

관련 문제