2010-03-01 1 views
1

asp.net MVC를 배우고 모델에 텍스트 상자 값을 제출하는 데 문제가 있습니다.Asp.net MVC는 라우팅 링크에 텍스트 상자 값을 추가합니다.

사용자가 숫자를 입력하는 텍스트 상자가 있는데,이 텍스트 상자에서 라우팅 링크를 누르면 텍스트 링크에서 값을 가져 와서 .Page 항목 중 하나에 할당합니다.

<%=Html.TextBox("PageIndex")%> 
<%=Html.RouteLink("Search", "UpcomingEvent", 
    New With {.Page = "I want to put value of PageIndex textbox here"})%> 

텍스트 상자의 값을 .Page 변수에 어떻게 할당 할 수 있습니까? 시간과 도움에 감사드립니다!

답변

3

RouteLink가 서버에서 렌더링되기 때문에 그렇게 할 수 없습니다.

다시 게시하지 않고 사용자 입력을 기반으로 URL을 구성하려면 일부 클라이언트 측 스크립팅 (예 : JavaScript)을 수행해야합니다.

1

텍스트 상자 값을 입력하면 서버에 다시 게시 할 필요가없는 것처럼 들립니다. 그렇다면 자바 스크립트를 사용하여 링크의 href 속성을 변경해야합니다. Html.RouteLink는 모두 서버 측에서 완료되었습니다. 당신이 jQuery를 사용하는 경우

후 여러 변경 이벤트가 해고 작동하지 않을 물론

$("#pageIndex").change(function() 
    { 
    $("#pageLink").href += "?pageIndex=" + $("#pageIndex")" 
    } 

같은 것이 있지만 그 부분은 독자들에게 연습으로 남아 있습니다.

+0

'pageIndex'는 QueryString 키가 아닌 라우트 값이 될 수 있습니다. 이것은 조금 더 복잡합니다. –

+0

라우트 값은 여전히 ​​ – stimms

+0

자극에서 서버로 다시 전달됩니다. 그의 URL은'/ home/search/2'가'2'가 pageIndex 값이라고 상상해보십시오. 스 니펫을 사용하면 URL은'/ home/search/2? pageIndex = 3'이됩니다. 그게 내가 말하려고했던거야. –