C# 中来自 SQL Server 的 JavaScript 数组数据

标签 javascript c# sql-server json asp.net-mvc

我正在尝试将从 SQL Server 检索到的数据存储在数组中,他们有什么方法可以实现它吗?

这里是我想要动态生成的示例数组:

var movies = [
                    { "rank": 1,  "rating": 9.2, "year": 1994, "title": "The Shawshank Redemption" },
                    { "rank": 2,  "rating": 9.2, "year": 1972, "title": "The Godfather" },
                    { "rank": 3,  "rating": 9,   "year": 1974, "title": "The Godfather: Part II" },
                    { "rank": 4,  "rating": 8.9, "year": 1966, "title": "Il buono, il brutto, il cattivo." },
                    { "rank": 5,  "rating": 8.9, "year": 1994, "title": "Pulp Fiction" },
                    { "rank": 6,  "rating": 8.9, "year": 1957, "title": "12 Angry Men" },
                    { "rank": 7,  "rating": 8.9, "year": 1993, "title": "Schindler's List" },
                    { "rank": 8,  "rating": 8.8, "year": 1975, "title": "One Flew Over the Cuckoo's Nest" },
                    { "rank": 9,  "rating": 8.8, "year": 2010, "title": "Inception" },
                    { "rank": 10, "rating": 8.8, "year": 2008, "title": "The Dark Knight" }
                ]

最佳答案

从 SQL Server 获取 IEnumerable 模型并使用标准 System.Web.Script.Serialization.JavaScriptSerializer 对其进行序列化:

Controller :

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Web.Mvc;
using System.Web.Script.Serialization;

namespace WebApplication1.Controllers {
    public class HomeController : Controller {
        public ActionResult Index() {
            object model = CreateScriptObjectFromDataObject(GetModel());
            return View(model);
        }
        private string CreateScriptObjectFromDataObject(IEnumerable dataObject) {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            return serializer.Serialize(dataObject);
        }
        private IEnumerable GetModel() {
            List<DataItem> items = new List<DataItem>();

            //LOAD ITEMS FROM DB INSTEAD

            items.Add(new DataItem() { rank = 1, rating = 9.2, year = 1994, title = "The Shawshank Redemption" });
            items.Add(new DataItem() { rank = 2, rating = 9.0, year = 1974, title = "The Godfather" });
            items.Add(new DataItem() { rank = 3, rating = 9.2, year = 1994, title = "The Godfather: Part II" });
            items.Add(new DataItem() { rank = 4, rating = 8.9, year = 1966, title = "Il buono, il brutto, il cattivo." });
            items.Add(new DataItem() { rank = 5, rating = 8.9, year = 1994, title = "Pulp Fiction" });
            items.Add(new DataItem() { rank = 6, rating = 8.9, year = 1957, title = "The Shawshank Redemption" });
            items.Add(new DataItem() { rank = 7, rating = 8.9, year = 1993, title = "12 Angry Men" });
            items.Add(new DataItem() { rank = 8, rating = 8.8, year = 1975, title = "One Flew Over the Cuckoo's Nes" });
            items.Add(new DataItem() { rank = 9, rating = 8.8, year = 2010, title = "Inception" });
            items.Add(new DataItem() { rank = 10, rating = 8.8, year = 2008, title = "The Dark Knight" });

            return items;
        }
    }
    public class DataItem {
        public int rank { get; set; }
        public double rating { get; set; }
        public int year { get; set; }
        public string title { get; set; }
    }
}

查看:

<script type="text/javascript">
    var movies = @Html.Raw(Model);
</script>

关于C# 中来自 SQL Server 的 JavaScript 数组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38939331/

相关文章:

javascript - Raphael.js 中的自定义动画

c# - MVVM View 模型异步数据初始化

sql - 从 SQL Server 到 Oracle 使用点表示法与 OpenQuery

javascript - 如何在 CommonJS 项目中包含 Epson SDK for JavaScript

javascript - 更新后无法访问计数器

javascript - 使用 useEffect 操作 DOM 事件在不同屏幕上不响应

c# - 有没有办法只对公共(public)方法/属性有 StyleCop 文档要求 SA1600?

c# - 明显的 BufferBlock.Post/Receive/ReceiveAsync race/bug

php - 使用 PHP 将 TXT 文件中的行插入 SQL 数据库

SQL Server 使用 CONVERT() 返回奇怪的日期