2011-06-13 1 views
0

내가 좋아하는 항목을 포함하는 지리적 컬렉션이 : [상태 이름] [도시], [주] [국가]MVC3/Razor를 사용하여 객체 및 경로 처리?

텍스트 상자는 사용자가 입력을 시작하는 데 사용할 수 있습니다, 그리고 jQuery를 자동 완성 상자 채우기는 가능한 옵션을 표시합니다.

의존한다 POST 요청의 URL 구조 된 www.mysite.com/city-state (국가가 선택된 경우), 상기 컬렉션에서 즉 www.mysite.com/allstates/someterms을 선택한/someterms (도시가 선택되면 도시가 선택됨) www.mysite.com/[state 이름]/someterms (상태가 선택되는 경우)

이들은 내 경로에 이미 정의되어 있습니다.

처음에는 적절한 URL 구조를 결정하기 위해 컨트롤러에 로직을 추가하려고했지만이를 지오 테이블의 추가 필드로 추가하기로했습니다. 따라서 지오 컬렉션의 속성이됩니다. 여기

컬렉션의 세부 사항을 표시하기 위해 내 jQuery를 기능은 텍스트 상자에 키 누름에 발사 될 때 : 내가하고자하는 객체 매개 변수에 따라 구조에게 URL을하는 것입니다

$(function() { 
     $("#txtGeoLocation").autocomplete(txtGeoLocation, { 
      source: function (request, response) { 
       $.ajax({ 
        url: "/home/FindLocations", type: "POST", 
        dataType: "json", 
        selectFirst: true, 
        autoFill: true, 
        mustMatch: true, 
        data: { searchText: request.term, maxResults: 10 }, 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { label: item.GeoDisplay, value: item.GeoDisplay, id: item.GeoID } 
         })) 
        } 
       }) 
      }, 
      select: function (event, ui) { 
       alert(ui.item ? ("You picked '" + ui.item.label + "' with an ID of " + ui.item.id) 
        : "Nothing selected, input was " + this.value); 
       document.getElementById("hidLocation").value = ui.item.id; 
      } 
     }); 
    }); 

(것 간단한) . 버튼 클릭이 아니라 "selected"에있는 매개 변수 만 읽을 수 있습니다.

어떻게하면됩니까?

감사합니다.

답변

0

이 문제를 해결하기 위해 Javascript에서 select: 부분을 제거하고 MVC 경로에 선택한 컨트롤러 매개 변수를 추가하여 컨트롤러에 보냈습니다.