C# 如何使用ASP.NET web api在nice HTML中格式化JSON返回值?

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.

这是我第一次使用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.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) { }