아래에서 볼 수 있듯이 JSON에서 VB에서 컬렉션을 비 직렬화하려고했습니다.숨겨진 입력 "빈 문자열"대 "null"자바 스크립트, VB
Dim items = JsonConvert.DeserializeAnonymousType(Page.Request.Params("Items"), New List(Of ItemDto))
역 직렬화에 문제가있어서 "value"문자열을 null로 설정할 수 없습니다. 이 항목이없는 다음이 제대로 작동하고 있다면이 실행되기 전에 내가 $("#Items').val(null);
을 한 경우에
System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.ArgumentNullException: Value cannot be null.
Parameter name: value
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
컬렉션 "항목은"그러나 <input type="hidden"....>
로 변환하는 <asp:HiddenField runat="server" ClientIDMode="Static" ID="Items" />
에 저장되었다.
내가 $("#Items").val(null);
을 수행 한 후에 $("#Items").val();
이 "이전"으로 표시되고 "보이지 않는"차이가있는 이유는 무엇입니까? 제로 너비 공간 같이?
"null"로 설정하면 왜 코드가 작동하는지 알 수 없습니다.
감사합니다.
그것은 디자인적인 것 같습니다. [** jquery .val Documentation **] (http://api.jquery.com/val/)을 보면, 문자열이나 숫자 또는 배열 만 반환한다고 나와 있기 때문에 Null은 다음과 같이 반환됩니다. 빈 문자열 – Nope
그렇다면 null이 빈 문자열로 나오는 이유를 설명 할 수 있습니다. 그러나 이전에 null 문자열로 설정하기 전에 이전에 빈 문자열로 나왔을 때이를 deserialize하지 않는 이유는 무엇입니까? – MerlynCooper
직렬화가 서버 측에서 일어나지 않습니까? 브라우저 디버거 콘솔 (Chrome에서 F12)을 열면 네트워크 탭을 확인하고 헤더에서 서버로 전송 된 값을 표시해야합니다. 그런 식으로 2의 차이점을 알 수 있습니다. – Nope