''object'不包含 在asp.net核心3.1中的定义

问题描述 投票:0回答:1

这个问题有两个部分

数字1:即时消息收到与此帖子相同的问题唯一的区别是im在asp.net core v3.1中运行Dynamic Anonymous type in Razor causes RuntimeBinderException

我尝试了expando解决方案但我仍然得到“对象”不包含“ myproperty”的定义的错误信息。

这里是我的代码在controller

:中
        var obj = new { newRoundNumber = maxround + 1 };
        IDictionary<string, object> dict = new ExpandoObject();
        dict.Add("p", obj);
        var expando = StaticFunctions.ToExpando(dict);
        return PartialView("_RoundsPartial", expando);

partialview

:中
@{
var p =  Model.p;
var newRound = p.newRoundNumber;   <--- fails

for (var r = 1; r <= newRound; r++)
{
    <div>@r</div>
}

}

有人可以告诉我怎么了吗?

数字2:显然这曾经有用

new{
  Project = projectInfo,
  WorkItem = workitem
}.ToExpando());

但不再在asp.net Core v3.1中它允许的转换是ToString()有谁知道asp.net核心中的等效内容?

更新:有评论回复尝试此链接:https://sebnilsson.com/blog/convert-c-anonymous-or-any-types-into-dynamic-expandoobject/

简而言之:

using System.Dynamic;
public static ExpandoObject ToExpandoObject(this object obj)
{
    IDictionary expando = new ExpandoObject();

    foreach (PropertyDescriptor property in 
        TypeDescriptor.GetProperties(obj.GetType()))
    {
        expando.Add(property.Name, property.GetValue(obj));
    }

    return (ExpandoObject) expando;
}

当前,此行返回错误:

    IDictionary expando = new ExpandoObject();

带有:无法将类型ExpandoObject隐式转换为IDictionary

反之亦然

这个问题编号1有两部分:即时消息接收与此帖子中的问题相同,唯一的区别是即时消息在Razor中运行在asp.net core v3.1动态匿名类型中会导致...

asp.net-core partial-views expandoobject anonymous-objects
1个回答
0
投票
var expando = StaticFunctions.ToExpando(dict);
return PartialView("_RoundsPartial", dict);
© www.soinside.com 2019 - 2024. All rights reserved.