2010-01-19 2 views
0

보기 중 하나에서 HTML 도우미 확인란을 사용하는 ASP.net MVC 프로젝트에서 작업 해 왔습니다. 내가 해결하려고하는 문제는 페이지를 새로 고치거나 사용자가 브라우저에서 뒤로 단추를 친 때 체크 상자 상태를 유지하는 것입니다. HTML 도우미를 시작으로 사용하려고 시도하지만 작동 방식에 대한 완전한 이해가 부족합니다. HTML 속성을 묻는 세 번째 매개 변수가 붙어 있습니다. 다음과 같이 내가 가진 형태에서 조각은 다음과 같습니다확인란 HTML 도우미

<tr> 
    <td><label for="Name">Name</label></td> 
    <td><%= Html.Encode(entity.CONTACT_NAME)%></td> 
    <td><input type="checkbox" name="Name" value="<%= Html.Encode(entity.CONTACT_NAME)%>"/> </td> 
    <td><%= Html.CheckBox("Name", false, new {@name = Html.Encode(entity.CONTACT_NAME)}) %></td> 
    </tr> 

가 혼동을 피하기 위해, 나는 CONTACT_NAME 중 하나는 여러 문자열 값을 가지고 내가 내 양식 전에 선언 개체라는 개체를 보유하고 있습니다. 테스트 목적으로 HTML 도우미 바로 위에 별도의 표준 HTML 체크 박스가 있습니다. 내 양식 POST 때 표준 확인란을 선택하면 값을 얻습니다. 헬퍼를 선택하면 사실 만 나타납니다.

  • 내가처럼 나는 표준 확인란을 선택하면 내가 값 을 얻을 수있는 방법, 내가 알고 싶은 무엇입니까?
  • 페이지의 확인란 상태를 유지하는 방법은 무엇입니까? 새로 고침 ??

감사합니다.

UPDATE :

@NickLarsen - 생성 된 HTML 코드를 보았다, 값은 "거짓 false"

다음과 같이 anthonyv 년대와 JonoW의 제안에 따라

제작 변경, 내보기 현재 상황 :

그러나 생성 된 HTMl은 실제 CONTACT_NAME 대신 여전히 부울 값 "false"로 값을 표시합니다.

NickLarsen의 제안에 따라 다음은 내 컨트롤러에서 값을 확인하는 코드입니다.

public ActionResult ProcessRequest(Request request, FormCollection form) 
     { 
      var aChangeRequest = new ChangeRequest(); 
      TryUpdateModel(aChangeRequest, new string[] { "Name" },form.ToValueProvider()); 
//Way more follows 

} 
+0

아마 값에 대한 페이지의 실제 html에 게시되는 것을 보길 원할 것입니다. 또한 값을 확인하는 코드를 게시하면 많은 도움이됩니다. –

답변

2

"@name"은 "@value"여야합니까?

<%= Html.CheckBox("Name", false, new {@value = Html.Encode(entity.CONTACT_NAME)}) %> 
0

이름이 같은 두 입력을하는 경우가있을 것입니다 : 당신은 두 번 이름을 설정하려고하는 것처럼

나는 다음과 같은 갖고 싶어 확신 ... 본다 (MVC가 부울 값으로 변환하려고하는) 값 목록으로 게시됩니다. 따라서 이름이 같은 두 개의 요소를 사용하여 테스트를 왜곡 할 수 있습니다. 이름 중 하나를 변경하는 것이 좋습니다.