유형이 string
인 모델이 있습니다. 이 모델을 바인딩 (면도보기)하고이 속성을 숨겨진 필드에 바인딩합니다. 속성 값이 비어 있습니다 (String.Empty
). 내가 컨트롤러 모델을 게시 할 때빈칸보기에서 공백이 null로 변환됩니다. C#
, 내가 무엇을 얻을 값은 null 대신 비어 있습니다.
아이디어가 있으십니까?
유형이 string
인 모델이 있습니다. 이 모델을 바인딩 (면도보기)하고이 속성을 숨겨진 필드에 바인딩합니다. 속성 값이 비어 있습니다 (String.Empty
). 내가 컨트롤러 모델을 게시 할 때빈칸보기에서 공백이 null로 변환됩니다. C#
, 내가 무엇을 얻을 값은 null 대신 비어 있습니다.
아이디어가 있으십니까?
왕복 수술에 대한 null 값을 빈 문자열로 유지하려고하면 null을 나타내는 특수 상수 문자열 값을 정의 할 수 있습니다. (그래서 당신은 그것의 연장을 할 수 있습니다) 정적 클래스에서이 같은 아마 뭔가 : 모델에 숨겨진 문자열 속성을 설정할 때 한 후 숨겨진 값을 다시 읽을 때
private const string NULL_STRING = "[email protected]@__";
public static string StringifyIfNull(this string s) {
return s == null ? NULL_STRING : s;
}
public static string DestringifyIfNull(this string s) {
return NULL_STRING == s ? null : s;
}
그래서, hiddenString.StringifyIfNull()
을 사용하고, 게시물은 원인은 조금 복잡하다 model.HiddenString.DestringifyIfNull()
그것은 효과가 있었다. 방금 조건을 변경해야했습니다. Stringify하려면 s == ""를 반환 하시겠습니까? NULL_STRING : s; Destringify하려면 s == NULL_STRING을 반환 하시겠습니까? "": s; –
는 컨트롤러 매개 변수 요청 데이터를 매핑하고, 요청 데이터가 빈 값 때 MVC 프레임 워크가하는 일 즉. Request.Form
컬렉션의 값을 확인하면 실제로 null 값이 아닌 빈 문자열임을 알 수 있습니다.
당신은 프레임 워크가 생성하는 null 값을 처리하거나 Request.Form
컬렉션에서 데이터를 읽을 수 있습니다.
이 링크는 도움이됩니다.
Why do I get null instead of empty string when receiving POST request in from Razor View?
"기본 모델은 당신을 위해 새로운 SomeModel을 만듭니다 바인딩. 문자열 유형의 기본값은 참조 형식이기 때문에 null의 경우, 그래서는 null로 설정되는입니다." 원래 답을 statichippo
사용합니다. strSomething.ToString()은 문자열 "strSomething"과 값 "strSomething.ToString()"을 사용하면 간단하게 처리 할 수 있지만 문자열에 null 값이 있으면 작동하지 않습니다. –