首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在ASP.NET MVC部分中显示JSON值

无法在ASP.NET MVC部分中显示JSON值
EN

Stack Overflow用户
提问于 2014-12-19 16:10:24
回答 1查看 91关注 0票数 0

我有一个ASP.NET MVC应用程序。这个应用程序与第三方休息服务交互。我将一些属性的名称传递给服务。例如,"property1,property2“。该服务返回如下所示的一些JSON:

代码语言:javascript
复制
"results":{
  "property1Type":"Collection",
  "property1":[
    {"found":3,"name":"Toys"}
  ],
  "property2Type":"Collection",
  "property2":[]
}

我试图在一个found部分中打印每个属性的name和ASP.NET值。目前,我认为:

代码语言:javascript
复制
@foreach (var propertyName in Model.PropertyNames)
{
  var response = Model.Response[propertyName];
  Html.RenderPartial("~/Views/Shared/_Result.cshtml", response);
}

PropertyNames属性是我传递给服务的属性名称的列表(即"property1,property2")。Response属性是从返回的JSON中解析的JObject

到目前为止,这段代码工作正常。我的问题是在_Result.cshtml。我的代码如下所示:

代码语言:javascript
复制
@if (Model.HasValues) {
  <div>@Model.Values("name")</div>
  <div>@Model.Values("found")</div>
  <div>@Model</div>
} else {
  <div>nothing</div>
}

当执行这段代码时,我会得到以下错误:

'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException‘类型的异常发生在System.Core.dll中,但在用户代码附加信息中没有处理:方法“值”没有过载接受“1”参数

当我查看JArray.Values方法时,我看到了两个重载。接受object作为参数的1。不接受参数的1。因为这个原因,这个错误对我来说毫无意义。如果删除对@Model.Values的调用,则@Model调用运行良好并打印出来:

代码语言:javascript
复制
[ { "found": 3, "name": "Toys" } ]

我做错了什么?如何在“部分”中打印“查找”的值和名称?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-19 19:41:31

您是想使用.Value()而不是.Values()吗?

1.htm

错误是正确的,因为.Values()不带任何参数。

1.htm

代码语言:javascript
复制
<div>@Model.Value("name")</div>
<div>@Model.Value("found")</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27569779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档