【问题标题】:JavaScript Array Data from SQL server in C#C# 中来自 SQL 服务器的 JavaScript 数组数据
【发布时间】:2016-12-20 17:29:56
【问题描述】:

我正在尝试将数据存储在我从 SQL 服务器检索的数组中,他们有什么方法可以完成它吗?

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

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" }
                ]

【问题讨论】:

  • 要在 c# 中读取/创建 json 数据,请查看 json.net 库。 json.codeplex.com

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


【解决方案1】:

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

控制器:

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>

【讨论】:

    猜你喜欢
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多