반응형
숨겨진 입력이 true/false가 아닌 value="value"인 이유는 무엇입니까?
MVC4 사이트가 있으며 (숨겨진 양식의 일부로):
<input name="somefield" type="hidden" value="@ViewBag.Test"/>
의 가치ViewBag.Test
이라true
양식 필드가 양식의 입력 매개 변수에 게시 중입니다.
public ActionResult SomeAction(bool somefield = false, ...)
그렇지만somefield
항상false
조사해보니 소스 코드는 다음과 같습니다.
<input name="somefield" type="hidden" value="value"/>
하지만, 저는 이것이 효과가 있었다는 것을 알고 있습니다.무슨 일이 일어났고, 내가 무엇을 할 수 있을까요?
이 동작은 MVC3와 MVC4 사이에서 변경되었습니다.MVC3에서 다음이 있는 경우:
<input name="somefield" type="hidden" someprop="@(SomeBooleanExpression)"/>
그것은 매우 문자 그대로 쓸 것입니다.
<input name="somefield" type="hidden" someprop="True"/>
그러나 MVC4에서는 "체크박스" 등의 규칙을 따르기 때문에 값이true
다음과 같은 정보를 얻을 수 있는 것:
<input name="somefield" type="hidden" someprop="someprop"/>
그리고 만약 그렇다면false
다음과 같이 완전히 생략됩니다.
<input name="somefield" type="hidden"/>
이 문제를 피하기 위해, 고려해 보세요..ToString()
:
<input name="somefield" type="hidden"
someprop="@(SomeBooleanExpression.ToString())"/>
그런 다음 부울 규칙이 아닌 문자열 규칙을 따릅니다.
초기화된 부울 값 boolean 무언가 = false;
그런 다음 이 값을 다음과 같은 문자열로 변환합니다.
<입력 이름="somefield" type="숨겨진" 값="@something.문자열로()>
OR
초기화된 문자열 something ="false"; < 입력 이름="somefield" type="숨겨진" 값="@something" >
그러면 우리는 읽을 수 있습니다.
public ActionResult Somemethod(bool something) => you can get Boolean value here
{
}
언급URL : https://stackoverflow.com/questions/13455270/why-is-my-hidden-input-writing-value-value-instead-of-true-false
반응형
'IT' 카테고리의 다른 글
유형 스크립트에서 중첩된 선택 <> 유형을 수행할 방법이 있습니까? (0) | 2023.06.17 |
---|---|
엔티티 디렉토리가 구성 파일에 설정되지 않은 경우 ORM 유형이 엔티티를 찾을 수 없음 (0) | 2023.06.12 |
두 단어 문자열에서 두 단어의 첫 번째 문자 대문자화 (0) | 2023.06.12 |
ggplot2에서 축 제목 및 레이블 크기 변경 (0) | 2023.06.12 |
비주얼 스튜디오 코드 컴파일러/디버거를 GCC로 설정하려면 어떻게 해야 합니까? (0) | 2023.06.12 |