C# 如何使用ASP.NET web api在nice HTML中格式化JSON返回值?
这是我第一次使用MVC Web Api 2,我已经设法让我的Web应用程序以JSON格式从另一个域上的第二个Web应用程序检索我需要的数据 我的API控制器如下所示:C# 如何使用ASP.NET web api在nice HTML中格式化JSON返回值?,c#,asp.net,asp.net-mvc,json,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Json,Asp.net Web Api,这是我第一次使用MVC Web Api 2,我已经设法让我的Web应用程序以JSON格式从另一个域上的第二个Web应用程序检索我需要的数据 我的API控制器如下所示: private IQueryable<ArticleDTO> MapArticles() { return from p in db.Articles.Include("Tags") select new ArticleDTO() { ArticleID=p.
private IQueryable<ArticleDTO> MapArticles()
{
return from p in db.Articles.Include("Tags")
select new ArticleDTO() {
ArticleID=p.ArticleID,
Title = p.Title,
Subheading = p.Subheading,
DatePublished = p.DatePublished,
Body = p.Body,
Tags = Tags.Select(t => new TagDTO {
Name = t.Name
})
};
}
public IEnumerable<ArticleDTO> GetArticles()
{
return MapArticles().AsEnumerable();
}
<div class="col-md-8">
<h3>
@Html.ActionLink(@item.Title, "ArticlesDetail", "Home", new { id = item.ArticleID }, null)
</h3>
<span class="sidebardate">@item.Date.ToLongDateString()</span><br />
@if (item.Tags != null && item.Tags.Count > 0)
{
<span class="sidebarabstract ArticleTags">
<strong>Tags:</strong>
@Html.Raw(string.Join(", ", from category in item.Tags select string.Format("<span><a href='/Article/Category/{0}'>{1}</a></span>", category.Name, category.Name)))
</span>
}
<div class="Articlesbodytext">
<p>@item.Abstract </p>
</div>
</div>
private IQueryable”,category.Name,category.Name)
}
@项目.摘要
如何格式化JSON结果以匹配此格式?我是否走错了路,是否应该在API调用中使用RSS提要
感谢您的帮助!首先,您的web API没有出错。 第二,使用Fiddler并检查您的Web API响应。
根据您将在那里找到的内容,调整您的WebAPI或Javascript。我在 另外,请注意,当您调用
$.each(…)
时,回调的参数与$(“#id”).each(…)
相反
但是
这给我带来了一些麻烦。你的网站设计有问题。你需要一个合适的数据层/服务,可以在你的web api以及mvc表单中重用。我不同意-我的api控制器返回我想要的结果,我的问题是如何格式化响应。是的。你可以使用json序列化/反序列化在Json.NET或JavaScriptSeralizer(在.NET框架中为本机)等库上,等等。这里的大多数答案已经描述了这一点。您可以使用控制器操作方法中的库,将模型传递给视图。之前,我只是强调使用统一的方法获取数据。我的API响应很好,我只是不确定一旦获得它,如何格式化它
<div class="col-md-8">
<h3>
@Html.ActionLink(@item.Title, "ArticlesDetail", "Home", new { id = item.ArticleID }, null)
</h3>
<span class="sidebardate">@item.Date.ToLongDateString()</span><br />
@if (item.Tags != null && item.Tags.Count > 0)
{
<span class="sidebarabstract ArticleTags">
<strong>Tags:</strong>
@Html.Raw(string.Join(", ", from category in item.Tags select string.Format("<span><a href='/Article/Category/{0}'>{1}</a></span>", category.Name, category.Name)))
</span>
}
<div class="Articlesbodytext">
<p>@item.Abstract </p>
</div>
</div>
$.each takes a function (element, key) { }
$("...").each takes a function (key, element) { }