2009-09-29 3 views
-1

안녕하세요, 이것은 초보 ASP.NET MVC 질문입니다.ASP.NET MVC - 게시물의 체크 박스 값을 얻는 방법

나는 체크 박스 목록과 제출 버튼이있는보기를 가지고있다. 컨트롤러 메서드에 게시물을 제출하지만 확인란의 값을 가져 오는 방법을 알아낼 수 없습니다. 또한, post 메서드에있을 때 뷰에 전달 된 모델 데이터를 가져 오는 방법을 알아낼 수 없으며 Html.Hidden을 사용하여 시도했지만 작동하지 않는 것 같습니다.

여기에 코드입니다 : http://pastebin.com/m2efe8a94 (보기) http://pastebin.com/m39ebc6b9 (컨트롤러) 모든 입력에 대한

덕분에받은 저스틴

+7

질문의 일부로 코드를 게시해야합니다. 나중에 비슷한 문제를 가진 사람들이 그것을 볼 수 있습니다. – reach4thelasers

+0

예, 코드가 사라졌습니다. – bastijn

+0

코드는 어디에 있습니까? 삭제 .....? –

답변

3

내가 눈치 우선은 숨겨진 필드를 양식 내에서 할 필요가 있다는 것입니다. 현재보기에서는 BeginForm 위에 있으므로 양식 제출에 포함되지 않습니다.

선택한 확인란의 값을 가져 오려면 OfferTrade 작업 메서드에 IsOffered 매개 변수를 추가하십시오.

public ActionResult OfferTrade(FormCollection result, List<string> IsOffered) 

해당 매개 변수에는 선택된 모든 IsOffered 상자에 대한 ItemId의 목록이 포함됩니다.

HtmlHelper의 CheckBox는 다르게 작동하며 작동 방식이 마음에 들지 않아 사용하지 않습니다.

매개 변수 유형이 List<int> 인 경우 List<int>은 ItemId 필드가 정수인 경우에도 작동해야합니다. 모든 항목 Id와 사용자 아이디의

+0

감사합니다. – Justin

0

먼저 양식 밖에 :

둘째
<%= Html.Hidden("ItemId", Model.ItemIWant.ItemId) %> 
<%= Html.Hidden("UserId", Model.ItemIWant.UserId) %> 

//... 

<% using (Html.BeginForm()) {%> 

당신이

(바인딩이도 불려 갔을 경우 모델) 사용자의 컨트롤러 액션 메소드 사용 "모델 바인딩"확인을 시도 할 수 있습니다
public ActionResult OfferTrade(int ItemId, int UserId, IList<string> IsOfferred) 

편집는 그냥 html 헬퍼 확인란 그래서 목록은 선택한 항목을 포함합니다 사용하지 않는 눈치,하지만 여전히 점 :

,

Model Binding To A List에 Phil Haacks 게시판을 보길 원할 수도 있지만, MVC의 RTM 버전에서는 약간의 변경이 있습니다.

". 인덱스"숨김 필드가 필요하지 않지만 이름 필드는 0으로 색인화되고 증가해야합니다 (1 씩 증가).

관련 문제