可以从C#类库中返回Json数据

时间:2012-05-09 08:57:56

标签: c# jquery asp.net-mvc json class-library

我正在创建一个报告,要求将Lists和Json数据返回到网页。我正在使用多层应用程序。 Web项目是使用MVC创建的,但繁重的工作是在不同项目中的类库中完成的。

我从一个类库向我的控制器返回一个报表对象,但我想知道是否可以在模型中返回Lists和Json的混合?理想情况下,我希望报告模型与以下内容类似:

public class Report
{
    public List<TopSellers> TopSellers { get; set; }
    public List<MonthlySales> MonthlySales { get; set; }
    public Json ShopSales { get; set; }

}

这样,列表内容可以正常呈现,但是jQuery可以抓住Json返回以呈现我正在使用的图形。

这可能吗?

我试图声明它与此相似但是我得到的唯一选择是'JsonReaderWriterFactory'。

到目前为止,我对Json的曝光是空的,所以如果有人可以帮助我,或者指出我正确的方向,我将非常感激!

感谢。

2 个答案:

答案 0 :(得分:6)

您可以使用JSON.net库将对象序列化为json字符串并将其设置为ShopSales属性。

http://json.codeplex.com/

report.OriginalList = objectToSerialize;

var jsonStr = JsonConvert.Serialize(objectToSerialize);
report.ShopSales = jsonStr;

return report; 

在客户端上,您可以将ShopSales属性与jQuery一起使用。

答案 1 :(得分:1)

我在这里看到的唯一方法(我也采用了一次)是在类库中创建一个 HTTP Handler ,它拦截某些请求并直接将JSON写入响应({{3值得一看。)

您还可以查看是否可以直接利用JSON.net来代替HTTP处理程序。

然后,您的类库必须作为对前端项目(即ASP.net MVC / WebForms)的引用添加,并且处理程序必须在那里注册。