-1

Newtonsoft.Json을 사용하여 redis 캐시에서 문자열을 deserialize하려고 할 때이 오류가 발생합니다. 형 Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.DynamicViewData에 사용할 기본 생성자를 찾을 수 없습니다 JsonConvert.DeserializeObject<HeaderTopViewComponent>(cacheValue.Result.ToString());Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.DynamicViewData 유형에 사용할 기본 생성자를 찾을 수 없습니다.

: HeaderTopViewComponent 내보기 구성 요소 ""와 같은

중 하나의 모델 클래스는

. 경로 'ViewBag', 1 호선, 위치 (340)

출력 문자열 :

{"ShowTopheaderSection":true,"PageHeader":"MSHSL","FriendlyURL":"/MSHSL","leagueList":[{"leagueId":0,"FriendlyURL":"/","leaguename":"--Select--"},{"leagueId":3,"FriendlyURL":"/MSHSL","leaguename":"MSHSL"},{"leagueId":4,"FriendlyURL":"/CHSAA","leaguename":"CHSAA"}],"HttpContext":null,"Request":null,"User":null,"RouteData":null,"ViewBag":{},"ModelState":{},"Url":null,"ViewComponentContext":{"Arguments":null,"HtmlEncoder":null,"ViewComponentDescriptor":{"DisplayName":null,"FullName":null,"Id":"9882d08a-1c50-4c59-8a30-2d9c843957e9","ShortName":null,"TypeInfo":null,"MethodInfo":null},"ViewContext":{"FormContext":null,"ClientValidationEnabled":false,"Html5DateRenderingMode":0,"ValidationSummaryMessageElement":null,"ValidationMessageElement":null,"ViewBag":{},"View":null,"ViewData":{},"TempData":null,"Writer":null,"ExecutingFilePath":null,"ActionDescriptor":null,"HttpContext":null,"ModelState":{},"RouteData":null},"ViewData":{},"Writer":null},"ViewContext":{"FormContext":null,"ClientValidationEnabled":false,"Html5DateRenderingMode":0,"ValidationSummaryMessageElement":null,"ValidationMessageElement":null,"ViewBag":{},"View":null,"ViewData":{},"TempData":null,"Writer":null,"ExecutingFilePath":null,"ActionDescriptor":null,"HttpContext":null,"ModelState":{},"RouteData":null},"ViewData":{},"ViewEngine":null} 
+1

사용자 정의 유형 변환기를 작성하지 않으면 기본 생성자가없는 객체로 직렬화 해제 할 수 없습니다. –

답변

0

내 viewcomponent 모달 클래스에 몇 가지 태그를 추가하여 문제를 해결하고

[JsonObject(MemberSerialization.OptIn)][JsonProperty] 같은 설정 속성을 가져가

//Tag to add only selected property when Deserialize or Serialize using Newtonsoft 
    [JsonObject(MemberSerialization.OptIn)] 
    public class HeaderTopViewComponent:ViewComponent 
    { 
     #region //Property// 
     [JsonProperty] 
     public bool ShowTopheaderSection { get; set; } 
     [JsonProperty] 
     public string PageHeader { get; set; } 
     [JsonProperty] 
     public string FriendlyURL { get; set; } 
     [JsonProperty] 

그리고 지금은 작동