MVC 2에서 HTML.Textbox를 모델 속성에 바인딩하는 방법
-
18-09-2019 - |
문제
내 모델에는 "output"의 속성이 있으며 내 양식은 "출력"이라는 텍스트 상자를 가지고 있으며, 모두 정확히 동일합니다. 양식을 작성하고 게시하면 리턴 뷰에는 예상치 못한 결과가 있습니다.
구체적으로, 게시 된 "출력"양식 변수를받은 다음 컨트롤러 메소드에서 모델에 바인딩 된 다음 모델을보기로 전달하기 전에이 변수를 다른 값으로 변경합니다.
게시 된 출력 속성은 "한 가지"입니다. 내 모델 속성은 "다른"으로 설정됩니다.
내 코드에 이것을 가지고 있습니다. <%= Html.TextBox("output") %>
이것으로 렌더링됩니다. <input id="output" name="output" type="text" value="one thing" />
그러나 디버깅 할 때 모델이 있습니다 하다 올바른 값 ( "다른")을 포함합니다.
컨트롤러에 지정된 값보다는 게시 된 값을 사용합니다. 왜 그리고 어떻게 고치는가?
해결책
그렇게 강력하게 입력 한보기를 사용하고 있다고 가정합니다.
<%@ Page ... Inherits="System.Web.Mvc.ViewPage<...TestModel>" %>
그리고 당신을 대체 할 편집기가 있습니다
<%= Html.TextBox("output") %>
그렇게 좋아요 <%= Html.EditorFor(p=>p.output) %>
컨트롤러에서 할 수 있습니다
ModelState.SetModelValue("output", new ValueProviderResult("Some string", string.Empty, new CultureInfo("en-US")));
비슷한 질문이 생겼습니다 여기
제휴하지 않습니다 StackOverflow