【问题标题】:Parsing JSON data ASP.NET C# and Razor解析 JSON 数据 ASP.NET C# 和 Razor
【发布时间】:2018-03-14 00:48:37
【问题描述】:

您好,我正在使用 ASP.NET 和 razor 在 VS 中工作,尝试使用 db 表中的值填充表,但我必须将 Json 解码或解析为简单文本。我真的很感激一些帮助。 这就是我得到的。

  [HttpGet]
        public ActionResult GetData()
        {
            string stdb = "Data Source=DMX87025;Initial Catalog=DB_PCC;Integrated Security=True";
            SqlConnection conn = new SqlConnection(stdb);
            string sql = "SELECT *FROM[DB_PCC].[dbo].[Departments]";
            SqlCommand cmd = new SqlCommand(sql, conn);
            conn.Open();

            SqlDataReader rd = cmd.ExecuteReader();

            var st = "kyo please help me u.u";
            return Json(new { success = true, message = rd },
                JsonRequestBehavior.AllowGet);
        }
这是我的 AJAX ...

<div id="result"></div>
<input type="button" name="name" value="try" onclick="DepListQuery()" />

<script>

    function DepListQuery() {


        $.ajax({
            type: 'GET',
            url: '@Url.Action("GetData","Home")',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {

                $('#result').text(response.message);
            },
            failure: function (response) {
                alert("something get wrong u.u");
            }
        });
    }

    

</script>

【问题讨论】:

  • 您需要读取ExecuteReader() 之后的数据并转换为模型并返回该模型的集合,然后在脚本中循环遍历该集合。
  • SqlDataReader rd = cmd.ExecuteReader(); 然后设置message = rd。您需要执行rd.Read() 来获取字符串。

标签: javascript c# ajax asp.net-mvc


【解决方案1】:

首先需要解决的是如何从SqlDataReader 读取数据。这是一个这样做的教程:http://csharp-station.com/Tutorial/AdoDotNet/Lesson04

但更好的是直接将数据读入对象。有关创建此类扩展方法的详细信息,请参阅此答案:Convert rows from a data reader into typed results

示例扩展方法:

public static List<T> ReadList<T>(this IDataReader reader, 
                                  Func<IDataRecord, T> generator) {
     var list = new List<T>();
     while (reader.Read())
         list.Add(generator(reader));
     return list;
}

在您的 SqlDataReader rd = cmd.ExecuteReader(); 行之后,您需要以下内容:

var departmentList = reader.ReadList(x => new Department {
                                           DeptID = x.GetInt32(0),
                                           DeptName = x.GetString(1)
                                    });

然后,一旦有了这样的对象列表,就可以将它们返回给前端视图 ajax:

How to parse JSON list of string on ajax return?

List of Objects To Json String

我还想指出,您应该用using 块包围您的SqlConnectionSqlCommandSqlDataReader 等。

【讨论】:

  • 您可以发布一个更明确的示例,我是 asp.net 和 C# 上的新手,所以请迷路...
猜你喜欢
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多