주의 :이 질문은 9 세 이상입니다!
가장 좋은 방법은 최신 질문을 검색하거나 특정 버전의 MVC를 찾는 아래의 답변을 검색하는 것입니다. 여기서 많은 답변이 더 이상 사용되지 않습니다.
사용중인 버전에 맞는 답변을 찾으면 사용중인 MVC 버전이 답변에 포함되어 있는지 확인하십시오.
(원래 질문은 아래에서 시작합니다)
이것은 나에게 약간 기괴한 것처럼 보이지만 내가 알 수있는 한, 이것이 당신이하는 방법입니다.
개체 모음이 있으며 사용자가 하나 이상의 개체를 선택하기를 원합니다. 이것은 나에게 "체크 박스와 양식"이라고 말합니다. 내 객체에는 "선택된"개념이 없습니다 (wcf 호출을 직렬화 해제하여 생성 된 기본적인 POCO입니다). 그래서 나는 다음을 수행합니다.
public class SampleObject{
public Guid Id {get;set;}
public string Name {get;set;}
}
보기에서 :
<%
using (Html.BeginForm())
{
%>
<%foreach (var o in ViewData.Model) {%>
<%=Html.CheckBox(o.Id)%> <%= o.Name %>
<%}%>
<input type="submit" value="Submit" />
<%}%>
그리고 컨트롤러에서 이것이 사용자가 확인한 객체를 파악할 수있는 유일한 방법입니다.
public ActionResult ThisLooksWeird(FormCollection result)
{
var winnars = from x in result.AllKeys
where result[x] != "false"
select x;
// yadda
}
처음에는 이상하고 사용자가 확인한 항목의 경우 FormCollection의 값이 true가 아니라 "true false"로 표시됩니다.
분명히, 나는 무언가를 놓치고있다. 나는 이것이 html 양식 내에서 작동하는 컬렉션의 객체가 다음을 사용하여 업데이트된다는 생각을 염두에두고 작성되었다고 생각합니다.UpdateModel()
가 ModelBinder를 하거나 ModelBinder를 통해 .
그러나 내 객체는 이것을 위해 설정되지 않았습니다. 이것이 이것이 유일한 방법이라는 것을 의미합니까? 다른 방법이 있습니까?