无法找到用于类型Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.DynamicViewData的默认构造函数

时间:2017-01-12 14:38:29

标签: json.net asp.net-core-mvc asp.net-core-1.0 stackexchange.redis

尝试使用Newtonsoft.Json从redis缓存中反序列化字符串时出现此错误。

其中HeaderTopViewComponent是我的一个视图组件的模型类""

喜欢:JsonConvert.DeserializeObject<HeaderTopViewComponent>(cacheValue.Result.ToString());

无法找到用于Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.DynamicViewData类型的默认构造函数。 Path&#39; ViewBag&#39;,第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 :(得分:0)

我通过在我的viewcomponent模态类中添加一些标记来修复它,并获得类似

的set属性

[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]

现在正在工作