2009-07-27 3 views
3

내가이 같은 경로가 말 :ASP.Net MVC는 : 양식 방법은 제출에 매개 변수를 잃는하기로

"{controller}/{action}/{roomId}/{name}" 

그리고 이런 형태의 동작을 (그리고 네 그것은 HTML의 작업에서 다음과 같습니다 즉 후 서버 처리) :

Room/Index/6/SomeThing?pageNumber=1&amountToShow=5 

그리고 형태는 간단하다 : 버튼을 클릭 이제

<form action = "Room/Index/6/SomeThing?pageNumber=1&amountToShow=5" method="get"> 
    <button type="submit">SomeButton</button> 
</form> 

, 요청의 omehow는 pageNumber = 1을 잃는 것처럼 보입니다. & amountToShow = 5 부분. 사실, ActionExecutingContext.ActionParameters 목록을 살펴보면 매개 변수 (pageNumber 및 amountToShow)가 있지만 값이 없습니다. 나는 심지어 요청을 보았고 URL이 "Room/Index/6/SomeThing? pageNumber = 1 & amountToShow = 5"라는 것을 알고 있음에도 불구하고 요청 매개 변수가 없습니다.

나는 어쩌면이 것은 버튼과 양식을 함께 할 수 있다고 생각, 어쩌면이 불가능했다하지만 난에 대한 경로 조정 :

"{controller}/{action}/{roomId}/{name}/{pageNumber}/{amountToShow}" 

을하고 URL 슈퍼 포맷을 제외하고는, 작동 :

Room/Index/6/SomeThing/1/5 

이번은 분명히 이번 일을하기 때문에 기대할 수 있습니다. 어떤 아이디어?

UPDATE

으로 내가 숨겨진 입력을 사용하여 시도, 아드리안 Godong 아래 제안하고 그것을 작동하지만이 여전히 더 많은 질문을 제기한다. 좀 더 자세한 경로를 사용하면 숨겨진 값없이 요청 매개 변수를 처리 할 수 ​​있지만 단축 경로는 처리되지 않는 이유는 무엇입니까?

답변

3

숨겨진 입력 필드로 쿼리 문자열 매개 변수를 옮겨 보았습니까?

그래서, 대신 폼 블록으로,이 시도 :

<form action = "Room/Index/6/SomeThing" method="get"> 
    <input type="hidden" name="pageNumber" value="1" /> 
    <input type="hidden" name="amountToShow" value = "5" /> 
    <button type="submit">SomeButton</button> 
</form> 
+0

시도해 볼 수는 있지만 여전히 동작이 실패한 이유는 궁금합니다. –

+0

이 방법은 효과가 있지만 혼란에 가중됩니다. 양식, 도착 및 경로와 관련하여 이상한 점이있을 수 있습니다. –

+1

분명히 이것은 html 양식의 작동 방식입니다. http://stackoverflow.com/questions/1116019/submitting-a-get-form-with-query-string-params-and-hidden-params-disappear asp.net 밖에서 같은 문제에 대해 –

2

을 나는 당신이 추가 취득을 통해 양식을 제출할 때이 원인을 munged됩니다 생각 'formvalue = 값 & otherfield = annothervalue ...?' 요청 문자열에. 이로 인해 '? stuff = value'가 IIS/ASP에 의해 무시됩니다.

관련 문제