ASP.NET MVC应用程序中的jQuery数据表

bcs8qyzn  于 4个月前  发布在  jQuery
关注(0)|答案(2)|浏览(59)

我试图将我的用户列表数据提取到jQuery Datatable中,但它并没有将数据填充到我的Datatable中,而是返回了一个包含我的数据的原始JSON格式页面。
我已经在互联网上搜索了大部分是什么写在他们的解决方案,我应用相同的技术。
下面是我的ASP.NET MVC操作方法:

[Route("Admin/Users")]
public ActionResult GetAllUsers()
{
    List<UsersModel> datas = new List<UsersModel>();
    Dt = _helper.GetAllUsers();

    if (Dt.Rows.Count > 0)
    {
        foreach (DataRow dr in Dt.Rows)
        {
            UsersModel users = new UsersModel
            {
                UserID = Convert.ToInt32(dr["USERID"]),
                UserName = dr["USERNAME"].ToString(),
                Password = dr["PASSWORD"].ToString(),
                SchoolCode = dr["SCHOOLCODE"].ToString(),
                BranchCode = dr["MAINACCOUNTID"].ToString(),
                IsActive = Convert.ToBoolean(dr["ISACTIVE"])
            };
            datas.Add(users);
        }
    }
    else
    {
        ViewBag.ErrorMessage = "No Users Found";
    }

    return Json(new { data = datas }, JsonRequestBehavior.AllowGet) ;
}

字符串
以下是我在视图GetAllUsers.cshtml中使用的jQuery Datatable:

@model SiteAdministrator1._1._0.Models.UsersModel

@{
    ViewBag.Title = "GetAllUsers";
    Layout = "~/Views/Shared/_adminLayout.cshtml";
}

<h2>GetAllUsers</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table" id="usersList">
    <thead>
        <tr>
            <th>
                UserID
            </th>
            <th>
                UserName
            </th>
            <th>
                Password
            </th>
            <th>
                SchoolCode
            </th>
            <th>
                BranchCode
            </th>
            <th>
                IsActive
            </th>
        </tr>
    </thead>
    <tbody></tbody>

</table>
@section scripts
{
    <script>
        $(document).ready(function () {
            $('#usersList').Datatable({
                "ajax": {
                    "url": "@Url.Action("GetAllUsers", "Admin")",
                    "type": "GET",
                    "datatype": "json"
                },
                "columns": [
                    { "data": "UserID" },
                    { "data": "UserName" },
                    { "data": "Password" },
                    { "data": "SchoolCode" },
                    { "data": "BranchCode" },
                    { "data": "IsActive" },

                    // Add other columns as per your model
                ]
            });
        });
</script>

注:

1.我已经集成了所有的jQuery和Datatable库。
1.我已经检查了我的数据表连接,即连接字符串)和存储过程中编写的查询
1.我已经使用调试器,看看我是否能够从数据库中获取数据,它的工作完全正常
1.我是通过ADO.NET(没有实体数据模型,没有实体框架)来获取数据库的
1.如果我只是在一个列表模板绑定我的模型中获取它,它工作得很好,并在ASP.NETMVC列表模板中显示数据

iyfamqjs

iyfamqjs1#

[Route("Admin/Users")]
public ActionResult GetAllUsers()
{
    List<UsersModel> datas = new List<UsersModel>();

    try
    {
        Dt = _helper.GetAllUsers();

        if (Dt.Rows.Count > 0)
        {
            foreach (DataRow dr in Dt.Rows)
            {
                UsersModel users = new UsersModel
                {
                    UserID = Convert.ToInt32(dr["USERID"]),
                    UserName = dr["USERNAME"].ToString(),
                    Password = dr["PASSWORD"].ToString(),
                    SchoolCode = dr["SCHOOLCODE"].ToString(),
                    BranchCode = dr["MAINACCOUNTID"].ToString(),
                    IsActive = Convert.ToBoolean(dr["ISACTIVE"])
                };
                datas.Add(users);
            }

            return Json(new { data = datas });
        }
        else
        {
            return Json(new { error = "No Users Found" });
        }
    }
    catch (Exception ex)
    {
        // Log the exception for troubleshooting.
        return Json(new { error = "An error occurred while fetching users." });
    }
}

字符串
你也可以这样试试吗?

plicqrtu

plicqrtu2#

[Route("Admin/Users")]
public ActionResult GetAllUsers() 
{
    var initialData = _helper.GetAllUsers(); 

    var datas = new List<UsersModel>();
    if (initialData.Rows.Count > 0)
    {
        foreach (DataRow dr in initialData.Rows)
        {
            UsersModel user = new UsersModel
            {
                UserID = Convert.ToInt32(dr["USERID"]),
                UserName = dr["USERNAME"].ToString(),
                Password = dr["PASSWORD"].ToString(),
                SchoolCode = dr["SCHOOLCODE"].ToString(),
                BranchCode = dr["MAINACCOUNTID"].ToString(),
                IsActive = Convert.ToBoolean(dr["ISACTIVE"])
            };
            datas.Add(user);
        }
    }

    return View("GetAllUsers", datas); }

[Route("Admin/GetAllUsersData")]
public ActionResult GetAllUsersData()
{
    // Fetch and return data in JSON format
    var datas = _helper.GetAllUsers(); 

    return Json(new { data = datas }, JsonRequestBehavior.AllowGet);
}

字符串
这是一种更好的方法,因为通过不同的操作方法来分离渲染视图和获取JSON数据是由于网页和客户端-服务器交互的方式。

相关问题