2011-04-13 4 views
1

정확한 데이터를 표시하는 jQuery 자동 선택 상자가 있습니다. 이제 항목을 선택하면 ASP.NET MVC 3 컨트롤러를 시작하고 싶습니다. 그러면 컨트롤러가보기로 리디렉션되어야합니다. 여기 내 jQuery를 자동 완성 코드입니다 (난 뭔가 2 Ajax 호출에없는,하지만 난 아직 발견하지 않았는지 확인) :jQuery 자동 완성 선택에서 컨트롤러 동작 실행

<script type="text/javascript"> 
    $(function() { 
     $("#Client").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        url: 'Entity/GetClientAutoComplete', type: 'POST', dataType: 'json', 
        data: { query: request.term }, 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { label: item, value: item }; 
         })) 
        } 
       }) 
      }, 
      minLength: 1, 
      select: function (event, ui) { 
       $.ajax({ 
        url: 'Entity/GetApplicationsByName/' + ui.item.value, type: 'POST' 
       }) 
      } 
     }); 
    }); 
    </script> 

을 그리고 여기에 내가 전화하려고 해요 컨트롤러의 :

public ActionResult GetApplicationsByName(string id) 
     { 
      ViewBag.Client = id; 
      var apps = _service.GetDashboardByName(id); 
      return View("Dashboard", apps.ToList()); 
     } 

Firebug에서 Ajax 호출 호출을 볼 때 올바른 URL 구성이 표시되지만 다른 것은 발생하지 않습니다. 뭔가를 보내지 않고 뭔가를로드하려는 것처럼 행동합니다. 나는 혼란스러워. 안내해 주셔서 감사합니다.

답변

1

글쎄 idPOSTGetApplicationsByName 컨트롤러로 보내졌고 컨트롤러가보기를 되돌려 보내고 있습니다.

select: function (event, ui) { 
    window.location.href = 'Entity/GetApplicationsByName/' + ui.item.value; 
} 
+0

우수 : 당신이 리디렉션을 원하는 경우에

, 당신은 다음을 사용할 수 있습니다! 예, 근처에있는 사람이 Ajax 전화를하고 싶지 않지만 대신 양식 게시물처럼 취급해야합니다. 그러나 귀하의 제안에 따라 더 많은 타이핑을 줄일 수 있습니다. 내가 그것을 테스트하고 예상대로 ViewBag 참조를 보냅니다. 이제 저장소에서 데이터를 반환하지 않는 이유를 알아야하지만 또 다른 문제입니다. – ewomack