首页 > 解决方案 > MVC:发布后数据表不包含任何数据

问题描述

我首先要说这是我发布的第一个项目,如果我给你太多或太少的信息,请提前道歉。因此,我将这个 MVC 项目发布到了业务服务器。它可以工作,但数据表中的数据未显示。虽然,当我只是在 Visual Studio 中调试时,有数据。该项目有 2 个选项卡:
第一个选项卡是显示使用 [u]Entity Framework[/u] 的相关数据表;
第二个选项卡还有一个数据表(a yadcf),它显示通过 [u]Ado.Net[/u] 访问的数据。第一个选项卡中的数据不显示,而在第二个选项卡中显示。

第一个选项卡上的数据表引用此链接:

而对于第二个选项卡,我导入了 yadcf 数据表。以下是我引用它的方式:

此外,当我在“元素”下执行 F12 时,我可以看到对数据表的引用(见附图)。此外,它看起来像数据表及其功能(搜索框、分页、列名)显示,但其中没有任何数据。

没有数据的数据表

如果您想查看它,这是索引页面的代码,其中包括数据表:

@{
    ViewBag.Title = "Index";
}

<ul class="nav nav-tabs">
    <li class="active"><a data-toggle="tab" href="#firstTab">View All</a></li>
    <li><a data-toggle="tab" href="#secondTab">Add New</a></li>
    <li><a data-toggle="tab" href="#thirdTab">Knowledge</a></li>
    <li><a data-toggle="tab" href="#fourthTab">IT Tasks</a></li>
</ul>

<div class="tab-content">
    <div id="firstTab" class="tab-pane fade in active">@Html.Action("ViewAll")</div>
    <div id="secondTab" class="tab-pane fade in">@Html.Action("AddOrEdit")</div>
    <div id="thirdTab" class="tab-pane fade in">@Html.Action("ViewAllKnowledge")</div>
    <div id="fourthTab" class="tab-pane fade in">@Html.Action("ViewAllTasks")</div>
</div>



@*jQuery Datatable CSS*@
<link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css">                                
<link rel="stylesheet" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.dataTables.min.css">                    
<link rel="stylesheet" href="https://cdn.datatables.net/colreorder/1.5.2/css/colReorder.dataTables.min.css">                    


@section scripts
{
    @Scripts.Render("~/bundles/jqueryval")

    @*jQuery Datatable JS*@
    <script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.js"></script>
    <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
    <script src="https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.min.js"></script>                         
    <script src="https://cdn.datatables.net/colreorder/1.5.2/js/dataTables.colReorder.min.js"></script>                        

    <script>
        function activatejQueryTable() {

            var table = $('#ticketTable').DataTable({
                rowReorder: { selector: 'tr' }, 
                colReorder: true,              
                "stateSave": true,              
                "stateDuration": 0,             
                "autoWidth": false,             
                "columnDefs": [
                    { "width": "40px", "targets": 0, "visible": true },     
                    { "width": "150px", "targets": 1, "visible": true },    //dtLastUpdated
                    { "width": "250px", "targets": 2, "visible": true },    //vcSubject
                    { "width": "150px", "targets": 3, "visible": true },    //vcFrom
                    { "width": "53px", "targets": 4, "visible": true },     //vcPriority
                    { "width": "90px", "targets": 5, "visible": true },     //vcAssignedTo
                    { "width": "53px", "targets": 6, "visible": true },     //vcStatus
                    { "width": "90px", "targets": 7, "visible": true },     //vcRequestType
                    { "width": "90px", "targets": 8, "visible": true },     //vcLocation
                    { "width": "90px", "targets": 9, "visible": true },     //vcCategory
                    { "width": "90px", "targets": 10, "visible": true },    //dtAnticipatedCompletion
                    { "width": "100px", "targets": 11, "visible": true }     //edit and delete buttons
                ],

                //Create the dropdowns
                responsive: true,
                "bAutoWidth": false,            
                initComplete: function () {

                    this.api().columns([4, 5, 6, 7, 8, 9]).every(function () {      
                        var column = this;

                        var select = $('<select class="myDropdown"><option value=""></option></select>')

                            .appendTo($("#filters").find("th").eq(column.index()))
                            .on('change', function () {
                                var val = $.fn.dataTable.util.escapeRegex($(this).val());
                                column.search(val ? '^' + val + '$' : '', true, false).draw();
                            })
                            .on('click', function (e) {
                                e.stopPropagation();                                
                            });

                        column.data().unique().sort().each(function (d, j) {
                            $(select).append('<option value="' + d + '">' + d + '</option>')
                        });
                    });
                }
                //End of create dropdowns
            });

        }
        //});

        $(function () {
            activatejQueryTable();
        });

</script>
}

仅供参考,当我发布时,我使用了以下内容:

连接下:发布方法:Web 部署服务器:(业务服务器名称)站点名称:HelpDeskSupport 用户名:myUsername 密码:myPassoword

在设置下:在“DBModel”作为数据源下,我添加了 SQL Server 名称及其用户名和密码。我检查了“在运行时使用此连接字符串...”

你能帮我弄清楚我做错了什么吗?谢谢你。

标签: javascriptjqueryhtmlmodel-view-controllerdatatables

解决方案


我找到了解决方案。我设置了一些权限代码,不允许显示记录。这是有道理的,因为数据表似乎出现了,所以我认为这是一些实体框架问题。


推荐阅读