2

我正在使用现有数据库在 MVC 中编写应用程序。我成功地将数据库与 EF 并通过脚手架连接起来。表格显示在视图中。

我想要 Jquery 插件,Datatable 用于排序和过滤。但他们需要 JSON 格式的数据。我环顾四周,没有找到将现有数据库中的值转换为 JSON 的可靠方法。

我看到了一些教程,其中添加了 DBController 和 DataService 等 WebAPI 属性并将其转换为 JSON。我无法通过这种方式工作...

所以我想知道如何将视图中的值转换为 JSON 的方法。如果我添加了很多不需要的信息,我很抱歉。

非常感谢

4

3 回答 3

2
var jsonData = @Html.Raw(new JavaScriptSerializer().Serialize(Model));

这是JavaScriptSerializer Class的 MSDN 文档。

于 2012-06-19T17:32:22.230 回答
2

如果您想在视图中进行 JSON 转换,那么您可以按照 @Aleksey 的回答进行操作。您告诉您正在使用 jquery 插件(jquery 表?),因此您可能需要控制器操作来返回数据以将网格填充为 JSON?在这种情况下,您可以在控制器中执行返回 Json 操作结果的操作,并且您无需直接使用 JavaScript 序列化程序进行任何转换(这将由框架为您完成)。

例如。

public JsonResult GetDataToFillGrid(parameters)
{
  var dataCollection = .. get from db

  return Json(dataCollection, JsonRequestBehavior.AllowGet);
}

JsonRequestBehavior.AllowGet您必须用于 GET 请求。

于 2012-06-20T04:05:37.433 回答
0

您的 Jquery DataTable 位于视图中,我们应该始终避免在视图内处理数据。View 应该只显示从 Controller 传递的数据。

话虽如此,您应该在控制器中创建一个方法,按照 Mark 的建议将结果作为 Json 对象返回。

于 2012-06-20T04:38:03.323 回答