C# 来自控制器的数据未提取到MVC中的Jquery数据表中(未使用实体框架)

C# 来自控制器的数据未提取到MVC中的Jquery数据表中(未使用实体框架),c#,asp.net-mvc,stored-procedures,datatables,C#,Asp.net Mvc,Stored Procedures,Datatables,查找下面的代码,并帮助我找出哪里出了问题,因为数据没有进入jQuery Datatable(数据仅以JSON格式显示) 步骤:1创建Datatbase访问层,然后创建一个名为Db2的类 public class Db2 { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);

查找下面的代码,并帮助我找出哪里出了问题,因为数据没有进入jQuery Datatable(数据仅以JSON格式显示)

步骤:1创建Datatbase访问层,然后创建一个名为Db2的类

        public class Db2
        {
           SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
            public DataSet show_data()
            {
              SqlCommand com = new SqlCommand("SP_Company_All", con);
              com.CommandType = CommandType.StoredProcedure;
              SqlDataAdapter da = new SqlDataAdapter(com);
              DataSet ds = new DataSet();
              da.Fill(ds);
               return ds;
            }
        }
步骤:2创建空控制器,并按照以下步骤编码

     public class Company1Controller : Controller
        {
            Database_Access_layer.Db2 db2layer = new Database_Access_layer.Db2();

            // GET: Company1
            public ActionResult Index()
            {
                return View();
            }
            public JsonResult get_data()
            {
                DataSet ds = db2layer.show_data();
                List<Company1> listcomp = new List<Company1>();
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    listcomp.Add(new Company1
                    {
                        CompanyID = Convert.ToInt32(dr["CompanyID"]),
                        CompanyName = dr["CompanyName"].ToString(),
                        CompanyCode = dr["CompanyCode"].ToString(),
                        Wecare_companyId = Convert.ToInt32(dr["Wecare_companyId"]),
                        LicenseCount = Convert.ToInt32(dr["LicenseCount"]),
                        active = Convert.ToBoolean(dr["active"]),
                        ModifiedBy = Convert.ToInt32(dr["ModifiedBy"]),
                        Lastmodifiedon = Convert.ToDateTime(dr["Lastmodifiedon"])
                    });
                }
                var data = listcomp;
                return Json(listcomp, JsonRequestBehavior.AllowGet);
            }
        }
公共类公司1控制器:控制器
{
Database_Access_layer.Db2 db2layer=新数据库_Access_layer.Db2();
//获得:公司1
公共行动结果索引()
{
返回视图();
}
公共JsonResult获取_数据()
{
数据集ds=db2layer.show_data();
List listcomp=新列表();
foreach(ds.Tables[0].行中的数据行dr)
{
上市公司新增(新公司1)
{
CompanyID=转换为32(dr[“CompanyID”),
CompanyName=dr[“CompanyName”].ToString(),
CompanyCode=dr[“CompanyCode”].ToString(),
Wecare_companyId=转换为32(dr[“Wecare_companyId”),
LicenseCount=Convert.ToInt32(dr[“LicenseCount”]),
active=Convert.ToBoolean(dr[“active”]),
ModifiedBy=Convert.ToInt32(dr[“ModifiedBy”]),
Lastmodifiedon=Convert.ToDateTime(dr[“Lastmodifiedon”])
});
}
var数据=listcomp;
返回Json(listcomp,JsonRequestBehavior.AllowGet);
}
}
第三步:那么视图部分应该是

            @{
        ViewBag.Title = "Company1 Page";
        Layout = null;
    }

    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title> 

            <!-- CDN LINKS-->
            <link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/4.3.1/cerulean/bootstrap.min.css" rel="stylesheet" />
            <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
            <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />
            <script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/js/jquery.dataTables.min.js"></script>
            <script src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js"></script>
        </head>
    <body>
        <div class="jumbotron">
            <h1>DataTable Example</h1>
            <p class="lead">A project dedicated to data table example in MVC</p>
        </div>
        <br />
        <center>
            <div style="width: auto; border: 1px solid black; padding: 3px" ;>
                <table id="dataTable">
                    <thead>
                        <tr>
                            <th>CompanyID</th>
                            <th>CompanyName</th>
                            <th>CompanyCode</th>
                            <th>WeCareCompanyID</th>
                            <th>LicenseCount</th>
                            <th>Active</th>
                            <th>ModifiedBy</th>
                            <th>LastModifiedOn</th>                        
                        </tr>
                    </thead>
                </table>
            </div>
        </center>
----- Scripting Part be like
        <script type="text/javascript">
                $(document).ready(function () {
                    $.ajax({
                        "url": "@Url.Action("get_data", "Company1")",
                        "method": "post",
                        "dataType" : "json",
                        success: function (data) {
                            $('#dataTable').DataTable({
                                paging: true,
                                sort: true,
                                searching: true,
                                scrollY: 200,
                                data:data,
                                columns: [
                                    { 'data': 'CompanyID'},
                                    { 'data': 'CompanyName' },
                                    { 'data': 'CompanyCode' },
                                    { 'data': 'Wecare_companyId' },
                                    { 'data': 'LicenseCount' },
                                    { 'data': 'active' },
                                    { 'data': 'ModifiedBy' },
                                    { 'data': 'Lastmodifiedon'}                               
                                ]
                            });
                        }
                    });
                });
        </script>
    </body>
    </html>
    }

Here is a code of database access layer, controller and view too but data is not displaying in Datatable. Tried in Multiple ways.But No Luck
@{
ViewBag.Title=“公司1页”;
布局=空;
}
指数
数据表示例

一个致力于MVC中数据表示例的项目


公司ID 公司名称 公司代码 Wecare公司 持牌人人数 活跃的 修改 拉斯顿 -----脚本部分可能是这样的 $(文档).ready(函数(){ $.ajax({ “url”:“@url.Action(“获取数据”,“公司1”)”, “方法”:“发布”, “数据类型”:“json”, 成功:功能(数据){ $('#dataTable')。dataTable({ 是的, 排序:对, 搜索:是的, 卷轴:200, 数据:数据, 栏目:[ {'data':'CompanyID'}, {'data':'CompanyName'}, {'data':'CompanyCode'}, {'data':'Wecare_companyId'}, {“数据”:“LicenseCount”}, {'data':'active'}, {'data':'ModifiedBy'}, {'data':'Lastmodifiedon'} ] }); } }); }); } 下面是数据库访问层、控制器和视图的代码,但数据未显示在Datatable中。尝试了多种方法,但没有运气
好的,我已经针对您的问题设置了一个示例工作存储库。您可以克隆此存储库并使用它。我已经硬编码了你的
列表comp=新列表()
具有预定义值,但假设数据库中的数据与我的硬编码值相似

我向您展示了相关的
模型
视图
控制器
代码以及应用程序的示例输出

请注意,我正在为您的
js
css
文件使用CDN链接:

您的
型号将如下所示:

using System;

namespace DataTablesExample
{
    public class Company1
    {
        public int CompanyID { get; set; }
        public string CompanyName { get; set; }
        public string CompanyCode { get; set; }
        public int Wecare_companyId { get; set; }
        public int LicenseCount { get; set; }
        public bool active { get; set; }
        public int ModifiedBy { get; set; }
        public DateTime Lastmodifiedon { get; set; }
        //Adding a string datetime since it is easier to manipulate in backend
        public string Lastmodifiedonstring { get; set; }
    }
}
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace DataTablesExample.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }


        public JsonResult get_date()
        {
            List<Company1> listcomp = new List<Company1>();

            //This is how you are setting your company list. I will show you a basic example by adding hardcoded values
            //DataSet ds = db2layer.show_data();

            //foreach (DataRow dr in ds.Tables[0].Rows)
            //{
            //    listcomp.Add(new Company1
            //    {
            //        CompanyID = Convert.ToInt32(dr["CompanyID"]),
            //        CompanyName = dr["CompanyName"].ToString(),
            //        CompanyCode = dr["CompanyCode"].ToString(),
            //        Wecare_companyId = Convert.ToInt32(dr["Wecare_companyId"]),
            //        LicenseCount = Convert.ToInt32(dr["LicenseCount"]),
            //        active = Convert.ToBoolean(dr["active"]),
            //        ModifiedBy = Convert.ToInt32(dr["ModifiedBy"]),
            //        Lastmodifiedon = Convert.ToDateTime(dr["Lastmodifiedon"])
            //    });
            //}

            listcomp.Add(new Company1
            {
                CompanyID = 1,
                CompanyName = "Company 1",
                CompanyCode = "C1",
                Wecare_companyId = 1,
                LicenseCount = 1,
                active = true,
                ModifiedBy = 1,
                Lastmodifiedon = DateTime.Now,
                Lastmodifiedonstring = DateTime.Now.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)
            });

            listcomp.Add(new Company1
            {
                CompanyID = 2,
                CompanyName = "Company 2",
                CompanyCode = "C2",
                Wecare_companyId = 2,
                LicenseCount = 2,
                active = true,
                ModifiedBy = 1,
                Lastmodifiedon = DateTime.Now,
                Lastmodifiedonstring = DateTime.Now.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)
            });

            listcomp.Add(new Company1
            {
                CompanyID = 3,
                CompanyName = "Company 3",
                CompanyCode = "C3",
                Wecare_companyId = 1,
                LicenseCount = 3,
                active = true,
                ModifiedBy = 1,
                Lastmodifiedon = DateTime.Now,
                Lastmodifiedonstring= DateTime.Now.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)
            });
            var data = listcomp;
            return Json(listcomp, JsonRequestBehavior.AllowGet);
        }
    }
}
@{
    ViewBag.Title = "Home Page";
    Layout = null;
}

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    @*<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
    <script src="~/Scripts/jquery-3.4.1.js"></script>
    <link href="~/Content/bootstrap4.min.css" rel="stylesheet" />
    <script src="~/Scripts/DataTables/jquery.dataTables.min.js"></script>
    <script src="~/Scripts/DataTables/dataTables.bootstrap4.min.js"></script>*@

    <!-- CDN LINKS-->
    <link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/4.3.1/cerulean/bootstrap.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/js/jquery.dataTables.min.js"></script>
    <script src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js"></script>
</head>
<body>
    <div class="jumbotron">
        <h1>DataTable Example</h1>
        <p class="lead">A project dedicated to data table example in MVC</p>
    </div>
    <br />
    <center>
        <div style="width: auto; border: 1px solid black; padding: 3px" ;>
            <table id="dataTable">
                <thead>
                    <tr>
                        <th>Company ID</th>
                        <th>Company Name</th>
                        <th>Company Code</th>
                        <th>WeCare Company ID</th>
                        <th>License Count</th>
                        <th>Active</th>
                        <th>Modified By</th>
                        <th>Last Modified On</th>
                        <th>Last Modified On Server String</th>
                    </tr>
                </thead>
            </table>
        </div>
    </center>
    <script type="text/javascript">
            $(document).ready(function () {
                $.ajax({
                    "url": "@Url.Action("get_date", "Home")",
                    "method": "post",
                    "dataType" : "json",
                    success: function (data) {
                        $('#dataTable').DataTable({
                            paging: true,
                            sort: true,
                            searching: true,
                            scrollY: 200,
                            data:data,
                            columns: [
                                { 'data': 'CompanyID'},
                                { 'data': 'CompanyName' },
                                { 'data': 'CompanyCode' },
                                { 'data': 'Wecare_companyId' },
                                { 'data': 'LicenseCount' },
                                { 'data': 'active' },
                                { 'data': 'ModifiedBy' },
                                {
                                    'data': 'Lastmodifiedon'
                                    //'render': function (jsonDate) {
                                    //    var date = new Date(parseInt(jsonDate.substr(13)));
                                    //    var month = date.getMonth() + 1;
                                    //    return month + "/" + date.getDate() + "/" + date.getFullYear();
                                    //}
                                },
                                { 'data': 'Lastmodifiedonstring' }
                            ]
                        });
                    }
                });
            });
    </script>
</body>
</html>
您的
控制器将如下所示:

using System;

namespace DataTablesExample
{
    public class Company1
    {
        public int CompanyID { get; set; }
        public string CompanyName { get; set; }
        public string CompanyCode { get; set; }
        public int Wecare_companyId { get; set; }
        public int LicenseCount { get; set; }
        public bool active { get; set; }
        public int ModifiedBy { get; set; }
        public DateTime Lastmodifiedon { get; set; }
        //Adding a string datetime since it is easier to manipulate in backend
        public string Lastmodifiedonstring { get; set; }
    }
}
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace DataTablesExample.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }


        public JsonResult get_date()
        {
            List<Company1> listcomp = new List<Company1>();

            //This is how you are setting your company list. I will show you a basic example by adding hardcoded values
            //DataSet ds = db2layer.show_data();

            //foreach (DataRow dr in ds.Tables[0].Rows)
            //{
            //    listcomp.Add(new Company1
            //    {
            //        CompanyID = Convert.ToInt32(dr["CompanyID"]),
            //        CompanyName = dr["CompanyName"].ToString(),
            //        CompanyCode = dr["CompanyCode"].ToString(),
            //        Wecare_companyId = Convert.ToInt32(dr["Wecare_companyId"]),
            //        LicenseCount = Convert.ToInt32(dr["LicenseCount"]),
            //        active = Convert.ToBoolean(dr["active"]),
            //        ModifiedBy = Convert.ToInt32(dr["ModifiedBy"]),
            //        Lastmodifiedon = Convert.ToDateTime(dr["Lastmodifiedon"])
            //    });
            //}

            listcomp.Add(new Company1
            {
                CompanyID = 1,
                CompanyName = "Company 1",
                CompanyCode = "C1",
                Wecare_companyId = 1,
                LicenseCount = 1,
                active = true,
                ModifiedBy = 1,
                Lastmodifiedon = DateTime.Now,
                Lastmodifiedonstring = DateTime.Now.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)
            });

            listcomp.Add(new Company1
            {
                CompanyID = 2,
                CompanyName = "Company 2",
                CompanyCode = "C2",
                Wecare_companyId = 2,
                LicenseCount = 2,
                active = true,
                ModifiedBy = 1,
                Lastmodifiedon = DateTime.Now,
                Lastmodifiedonstring = DateTime.Now.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)
            });

            listcomp.Add(new Company1
            {
                CompanyID = 3,
                CompanyName = "Company 3",
                CompanyCode = "C3",
                Wecare_companyId = 1,
                LicenseCount = 3,
                active = true,
                ModifiedBy = 1,
                Lastmodifiedon = DateTime.Now,
                Lastmodifiedonstring= DateTime.Now.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)
            });
            var data = listcomp;
            return Json(listcomp, JsonRequestBehavior.AllowGet);
        }
    }
}
@{
    ViewBag.Title = "Home Page";
    Layout = null;
}

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    @*<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
    <script src="~/Scripts/jquery-3.4.1.js"></script>
    <link href="~/Content/bootstrap4.min.css" rel="stylesheet" />
    <script src="~/Scripts/DataTables/jquery.dataTables.min.js"></script>
    <script src="~/Scripts/DataTables/dataTables.bootstrap4.min.js"></script>*@

    <!-- CDN LINKS-->
    <link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/4.3.1/cerulean/bootstrap.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/js/jquery.dataTables.min.js"></script>
    <script src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js"></script>
</head>
<body>
    <div class="jumbotron">
        <h1>DataTable Example</h1>
        <p class="lead">A project dedicated to data table example in MVC</p>
    </div>
    <br />
    <center>
        <div style="width: auto; border: 1px solid black; padding: 3px" ;>
            <table id="dataTable">
                <thead>
                    <tr>
                        <th>Company ID</th>
                        <th>Company Name</th>
                        <th>Company Code</th>
                        <th>WeCare Company ID</th>
                        <th>License Count</th>
                        <th>Active</th>
                        <th>Modified By</th>
                        <th>Last Modified On</th>
                        <th>Last Modified On Server String</th>
                    </tr>
                </thead>
            </table>
        </div>
    </center>
    <script type="text/javascript">
            $(document).ready(function () {
                $.ajax({
                    "url": "@Url.Action("get_date", "Home")",
                    "method": "post",
                    "dataType" : "json",
                    success: function (data) {
                        $('#dataTable').DataTable({
                            paging: true,
                            sort: true,
                            searching: true,
                            scrollY: 200,
                            data:data,
                            columns: [
                                { 'data': 'CompanyID'},
                                { 'data': 'CompanyName' },
                                { 'data': 'CompanyCode' },
                                { 'data': 'Wecare_companyId' },
                                { 'data': 'LicenseCount' },
                                { 'data': 'active' },
                                { 'data': 'ModifiedBy' },
                                {
                                    'data': 'Lastmodifiedon'
                                    //'render': function (jsonDate) {
                                    //    var date = new Date(parseInt(jsonDate.substr(13)));
                                    //    var month = date.getMonth() + 1;
                                    //    return month + "/" + date.getDate() + "/" + date.getFullYear();
                                    //}
                                },
                                { 'data': 'Lastmodifiedonstring' }
                            ]
                        });
                    }
                });
            });
    </script>
</body>
</html>
应用程序的示例输出:

如果您注意到输出中的最后两个字段,您将看到一个字段是从模型发送的未格式化的
DateTime
字段,另一个字段是格式化的
DateTime
字段到
Date
字符串。这是因为数据表需要一个
Date
字段来显示值。这里有两个选项:

  • 您可以将
    控制器
    方法中的
    日期时间
    字段转换为格式化的
    日期
    字符串,并将其发送到
    视图
    。这就是我正在做的事情,也是输出的最后一个字段(服务器字符串上最后一次修改)。我更喜欢这种方法,因为C#提供了有效的方法,可以将
    日期时间
    格式化为
    日期
    ,格式符合您的要求

  • 另一个选项是将
    日期时间
    值发送到
    数据表
    ,并根据需要对其进行格式化。我还没有尝试过这种方法,但我觉得它可能会导致潜在的问题,在渲染您的价值

  • 我希望这对你有帮助


    干杯

    好的,我已经设置了一个示例工作报告