2012-11-15 4 views
1

나는이 값을 둘 필요 링크. DropDownList의 지역 값을 쿼리 문자열에 넣으려면 어떻게해야합니까? 당신은 페이지로드에있는 URL을 설정할 수 없기 때문에Html.ActionLink 텍스트 상자 값

public ViewResult List(string sortOrder, string currentFilter, string searchString, int? page, string zipCode, string region, int? distance, string searchType, string country) 
    { 
     _storeService = new StoreService(); 

     //sets defaults 
     if (String.IsNullOrEmpty(zipCode)) 
     { 
      zipCode = "02472"; 
     } 

     if (String.IsNullOrEmpty(region)) 
     { 
      region = "MA"; 
     } 
    } 
+0

사용자가 선택을 변경하면 페이지에서 동작 링크를 업데이트하겠습니까? 또는 페이지로드시 "지역"의 값만 원하십니까? – McGarnagle

답변

1

, 나는 그냥 앵커 태그에 클릭 리스너를 추가하고, 거기에 링크를 업데이트 할 것 : 내 코드에서 MA의 기본값으로 지역을 설정 :

@Html.ActionLink("<<", "List", new { ... }, 
    new { onclick = "updateLink(this);" }) 

핸들러는 드롭 다운을 지역에서 지역을 검색하고 업데이트해야합니다 링크의 href :

function updateLink(anchor) { 
    var select = document.getElementById('region'); 
    var region = select.options[select.selectedIndex].value; 
    anchor.href = e.href + "&region=" + region; 
} 

0

사용자가 귀하의 페이지를 볼 때 링크 값으로 이미 렌더링되었고, 사용자가 선택을 한 후에 해당 값을 해당 링크에 배치하려고합니다. 클라이언트 쪽. 코드에서 - 처음에 컨트롤러에 채워지지 않은 ViewData [ "region"]의 값을 컨트롤러에 전달합니다. 그래서 당신은 null을 얻습니다. ajax를 사용하여 변경된 선택 사항에 대한 뷰 데이터를 채 웁니다.