我正在使用现有数据库在MVC中编写应用程序。我成功地将数据库与EF和Scaffolding连接起来。表格显示在视图中。
我想要Jquery插件,Datatable用于排序和过滤。但它们需要JSON格式的数据。我环顾四周,找不到将现有数据库中的值转换为JSON的可靠方法。
我看到教程中添加了像DBController和DataService这样的WebAPI属性并将其转换为JSON。我无法通过这种方式工作......
所以我想知道如何将视图中的值转换为JSON的方法..如果我添加了大量不需要的信息,我很抱歉。
非常感谢
答案 0 :(得分:2)
var jsonData = @Html.Raw(new JavaScriptSerializer().Serialize(Model));
以下是JavaScriptSerializer Class的MSDN文档。
答案 1 :(得分: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请求。
答案 2 :(得分:0)
您的Jquery DataTable位于View中,我们应始终避免在视图内处理数据。视图应仅显示从Controller传递的数据。
说完这个之后,你应该在控制器中创建一个方法,它将结果作为Mark建议的Json对象返回。