체크 박스에서 값을 컨트롤러에 게시하는 매우 이상한 경우가 있습니다. 내 뷰 모델의MVC 3에서 체크 박스 값이 true가 아님
부 : 내보기의
public class BeslutIStortViewDTO
{
public BeslutIStortDTO BeslutIStort { get; set; }
public BeslutIStortListorDTO SelectListor { get; set; }
}
public class BeslutIStortDTO
{
public int id { get; set; }
public bool Ok { get; set; }
... other stuff
}
부분 :
되지 않은, 모든 일에 상자가 좋아 보인다 컨트롤러에 전달 된 문자열에서<div id="colOk" class="kolumn_header">
@Html.LabelFor(model => model.BeslutIStort.Ok)
@Html.CheckBoxFor(model => model.BeslutIStort.Ok, new { @class = "rensa", tabindex = 5 })
</div>
:
BeslutIStort.Ok=false
BUT! 나는 그것을 검사 할 때 : 문자열에 두 번
BeslutIStort.Ok=&BeslutIStort.Ok=false
그것을, 첫 번째는 oterh이 false
이며, 값이없는, 그래서 모두 잘못이다. 나는 당연히 하나만을 기대할 것이고 그 하나는 true
일 것이다.
또 다른 흥미로운 발견은 acutal 렌더링 된 HTML에서, 체크 박스는 다음과 같습니다이다 :
<input class="rensa" id="BeslutIStort_Ok" name="BeslutIStort.Ok" tabindex="5" type="checkbox" value="true" /><input name="BeslutIStort.Ok" type="hidden" value="false" />
그것은 숨겨진 필드가 있습니다!
내가 서버에 값을 게시 할 때, 나는 아약스와 함께 할, 데이터 매개 변수를 다음과 같이 정의된다 :
나는 사람이에 도움이 되거 나에게 도움이 될 희망data: $("#BisData").serialize(),
하고, 내가 그것을 밖으로 냈다는으로 === 해결
=== :-) 내 컨트롤러 일부 "true"로 점점 도움이 같은 자바 스크립트했다 :.
$ (". rensa")를 발을 ("");
확인란이 작동하지 않습니다. 나는 이것을 다음과 같이 추가했다 :
$ (". rensaCheckbox"). attr ("checked", false);
체크 박스의 경우 이제 작동합니다.
#BisData는 양식 태그 ID입니까? – Thulasiram
예 it________ – kaze
k .. 경고 추가 ($ ("# BisData"). serialize()); 이 출력을 여기에 입력하십시오 ... – Thulasiram