여기 내 코드의 선택 무엇이 거짓 값을 전송하지 유지 :CheckBox 구성 도우미 상관없이
@using (Html.BeginForm("AddMCondition", "Admin"))
{
<td class="admin-textbox">
@Html.TextBox("txtMCondition")
</td>
<td>
@foreach (var exerType in Model.AllExerciseTypes)
{
<label>
@Html.CheckBox("RestrictedType")
@exerType.Name
</label>
}
<input type="submit" value="Add Medical Condition" />
</td>
}
는이 내가 컨트롤러에서 값을 검색하고있어 어떻게
public ActionResult AddMCondition(string txtMCondition, string[] RestrictedType)
{
//Code here...
}
가 만 3 항목에서 AllExerciseTypes 모음집입니다. 각각의 체크 박스가 적어도 false 값을 컨트롤러에 보내고 있는지 여부에 관계없이 선택되었습니다. 확인란을 선택하지 않으면 콜렉션에서 3 개의 false가 반환됩니다. 1 체크 박스를 선택하면 4 개의 값, 즉 참 및 거짓 3 개를 얻습니다. 모두 체크하면 True, False, True, False, True, False의 3 가지 값을 얻습니다.
각 상황에서 적어도 false를 보내는 이유는 무엇입니까?
죄송합니다. 이해가 가지 않습니다. value = "true"를 추가해야합니까? 체크 박스를 체크하지 않은 경우 어떻습니까? 그 값은 컨트롤러 레벨에서 여전히 유효 할 것입니다. – Richard77
아니, 그건 그냥 임의의 값 이었어. 확인란을 선택하지 않으면 false 값이 숨겨진 필드로 인해 해당 확인란의 이름과 함께 서버에 다시 게시됩니다. 확인란을 선택하면 확인란에 명시 적으로 설정 한 값도 함께 게시됩니다 (일반적으로 확인란이 부울 값으로 사용되기 때문에 true). 모델 바인딩을 사용하는 경우 바인더는 2 개의 값이 다시 전송 되더라도 확인란을 선택했는지에 따라 모델 속성을 true 또는 false로 설정할 것인지 여부를 알 수 있습니다. – levelnis
모델이 거대하고 전체 페이지에 더 많은 양식이 있기 때문에 모델을 사용할 수 없습니다. 어쩌면 내가 논리를 직접 구현하는 것, 즉 거짓과 진실의 패턴을 발견 했는지도 모른다. – Richard77