【发布时间】:2015-06-11 12:55:42
【问题描述】:
我需要一个 ASP.NET MVC 控制器,它以 JSON 格式从 JS 接收匿名对象,以遍历其属性。我曾经这样做,收到Dictionary<string, object>。但是现在其中一个值是Array,并且是
receivedDictionary[Photos] = [object, object, object]
它得到它
receivedDictionary[Photos[0]] = object, receivedDictionary[Photos[1]] = object, receivedDictionary[Photos[2]] = object
我没有得到一个 key = Photos 和 value = array 的字典条目,而是许多 key = Photos[x] 和 value = object 的条目。
如何将它作为字典中的一个条目获取,或者有没有更好的方法将其作为动态匿名对象获取并像在 JS 中一样遍历其属性?
UPD:JSON 看起来像这样:
{"fields":{"TotalFloors":"9","HouseNumber":"10","Photos":[{"id":0,"ParentID":0,"OriginalUrl":"py4s1y3uyqu","OriginalExt":".jpg","ThumbUrl":"2hn04w2lzuu","FormatUrls":{"WH_109_82_Url":"4cwjarqudvo","WH_766_454_Url":"oofm5qo21rr"}},{"id":0,"ParentID":0,"OriginalUrl":"t3csgq20iro","OriginalExt":".jpg","ThumbUrl":"j1uwwburmse","FormatUrls":{"WH_109_82_Url":"gm4qoery1u2","WH_766_454_Url":"a3c20re3g1d"}}],"Details":"Other details"}}
控制器定义:
[HttpPut]
public ActionResult restId(string className, int id, Dictionary<string, object> fields)
{
....
}
【问题讨论】:
-
JSON 是什么样的?以及创建 JSON 的代码?你能控制那段代码吗?
-
你能发布 JSON 的实际 sn-p 吗?
-
是的,我确实可以控制客户端代码。
-
也许
dynamic类型适合您?匿名类型仍然需要编译时类型安全,如果输入在结构上未知,则无法提供。也许你可以在这里描述更多关于用例的信息? -
大卫,也许,以及如何使用反射迭代动态的属性?多说一句,我可以补充一点,创建此控制器是为了使用反射编辑任何类网站模型的对象。这个特定的控制器正在获取输入并使用输入的键通过反射查看类属性,并根据属性的类型决定如何处理输入的值
标签: c# asp.net asp.net-mvc