C# jquery数据表Ajax错误/http://datatables.net/tn/7

C# jquery数据表Ajax错误/http://datatables.net/tn/7,c#,jquery,ajax,asp.net-mvc,jquery-datatables,C#,Jquery,Ajax,Asp.net Mvc,Jquery Datatables,请看下面我的问题: 我在MVC Web应用程序中使用jquery数据表。当我只显示8列时,一切正常。但还有一个专栏,我得到了ajax错误消息,请参见标题 控制器工作正常,因为8列工作正常。下面是我的视图代码: <script type="text/javascript"> $(document).ready(function () { var table = $('#example').DataTable({ "processing":

请看下面我的问题:

我在MVC Web应用程序中使用jquery数据表。当我只显示8列时,一切正常。但还有一个专栏,我得到了ajax错误消息,请参见标题

控制器工作正常,因为8列工作正常。下面是我的视图代码:

<script type="text/javascript">
    $(document).ready(function () {
        var table = $('#example').DataTable({
            "processing": true,
            "serverSide": true,
            "ajax": "@Url.Action("List", "DFS_Akustik")",
            "columns": [
                { "data": "ID" },
                { "data": "MessID" },
                { "data": "KL_ID" },
                { "data": "MP_ID" },
                { "data": "LwLin50ss" },
                { "data": "LwLin63ss" },
                { "data": "LwLin80ss" },
                { "data": "LwLin100ss" },
                //{ "data": "LwLin125ss" },
            ],
        });
    });
</script>

$(文档).ready(函数(){
变量表=$('#示例')。数据表({
“处理”:对,
“服务器端”:正确,
“ajax”:“@Url.Action(“List”,“DFS_Akustik”)”,
“栏目”:[
{“数据”:“ID”},
{“数据”:“梅西德”},
{“数据”:“KL_ID”},
{“数据”:“MP_ID”},
{“数据”:“LwLin50ss”},
{“数据”:“LwLin63ss”},
{“数据”:“LwLin80ss”},
{“数据”:“LwLin100ss”},
//{“数据”:“LwLin125ss”},
],
});
});
如果最后一列未处于活动状态,则可以:

当我深入研究最后一列的//时,然后:

我怎样才能解决这个问题??请帮帮我。。。我在寻找解决办法,从周一开始,一整天

多谢各位

格里茨
贝吉塔77早安。此处显示HTML/表格标题:

<div style="width: auto; height: 750px; overflow-x: auto; overflow-y: auto;">
    <table id="example" class="table display" cellspacing="0">
        <thead>
            <tr>
                <th>ID</th>
                <th>MessID</th>
                <th>KL_ID</th>
                <th>MP_ID</th>
                <th>LwLin50ss</th>
                <th>LwLin63ss</th>
                <th>LwLin80ss</th>
                <th>LwLin100ss</th>
                @*<th>LwLin125ss</th>*@
            </tr>
        </thead>
    </table>
</div>

身份证件
混乱的
吉隆坡
MP_ID
LwLin50ss
LwLin63ss
LwLin80ss
LwLin100ss
@*LwLin125ss*@
服务器端结果很好,请看:

@啜饮。我不明白我们的第二个问题

名称都是正确的,请看第三张图片/链接。 以下是来自控制器的methode“List”:

public JsonResult List([ModelBinder(typeof(DataTablesBinder))] 
IDataTablesRequest requestModel)
{
List<View_DFS_Akustik> myOriginalDataSet = dbman.View_DFS_Akustik.ToList();
List<View_DFS_Akustik> myFilteredData = dbman.Set<View_DFS_Akustik>().FullTextSearch(requestModel.Search.Value).ToList();

//Apply filter to your dataset based only on the columns that actually have a search value.
foreach (var column in requestModel.Columns.GetFilteredColumns())
{
    string query = column.Data + ".Contains(\"" + column.Search.Value + "\")";
    myFilteredData = myFilteredData.Where(query).ToList();
}

//Set your dataset on the same order as requested from client-side either directly on your SQL code or easily
//into any type or enumeration.
bool isSorted = false;
foreach (var column in requestModel.Columns.GetSortedColumns())
{
    if (!isSorted)
    {
        // Apply first sort.
        if (column.SortDirection == Column.OrderDirection.Ascendant)
            myFilteredData = myFilteredData.OrderBy(column.Data).ToList();
        else
            myFilteredData = myFilteredData.OrderBy(column.Data + " descending").ToList();

        isSorted = true;
    }
    else
    {
        if (column.SortDirection == Column.OrderDirection.Ascendant)
            myFilteredData = myFilteredData.OrderBy(column.Data).ToList();
        else
            myFilteredData = myFilteredData.OrderBy(column.Data + " descending").ToList();
    }
}

var paged = myFilteredData.Skip(requestModel.Start).Take(requestModel.Length);
return Json(new DataTablesResponse(requestModel.Draw, paged, myFilteredData.Count(), myOriginalDataSet.Count()), JsonRequestBehavior.AllowGet);
}
publicjsonresult列表([ModelBinder(typeof(datatablebinder))]
IDataTablesRequest请求模型)
{
List myOriginalDataSet=dbman.View_DFS_Akustik.ToList();
List myFilteredData=dbman.Set().FullTextSearch(requestModel.Search.Value).ToList();
//仅基于实际具有搜索值的列将筛选器应用于数据集。
foreach(requestModel.Columns.GetFilteredColumns()中的var列)
{
字符串查询=column.Data+”。包含(\“”+column.Search.Value+“\”);
MyFilteredata=MyFilteredata.Where(query.ToList();
}
//直接在SQL代码上或轻松地按照客户端请求的顺序设置数据集
//进入任何类型或枚举。
bool-isSorted=false;
foreach(requestModel.Columns.GetSortedColumns()中的var列)
{
如果(!isSorted)
{
//应用第一类。
if(column.SortDirection==column.OrderDirection.Ascendant)
MyFilteredata=MyFilteredata.OrderBy(column.Data.ToList();
其他的
MyFilteredata=MyFilteredata.OrderBy(column.Data+“降序”).ToList();
isSorted=true;
}
其他的
{
if(column.SortDirection==column.OrderDirection.Ascendant)
MyFilteredata=MyFilteredata.OrderBy(column.Data.ToList();
其他的
MyFilteredata=MyFilteredata.OrderBy(column.Data+“降序”).ToList();
}
}
var paged=myFilteredData.Skip(requestModel.Start).Take(requestModel.Length);
返回Json(新的DataTableResponse(requestModel.Draw,paged,MyFilteredata.Count(),myOriginalDataSet.Count()),JsonRequestBehavior.AllowGet);
}

THX。贝吉塔77

我有它,我的朋友们!!!!!!!!!!!!!!!!!!!!!!! 非常好:-)

以下是解决方案:

$(document).ready(function() {
    $('#example').dataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": {
            "url": "scripts/post.php",
            "type": "POST"
        },
        "columns": [
            { "data": "first_name" },
            { "data": "last_name" },
            { "data": "position" },
            { "data": "office" },
            { "data": "start_date" },
            { "data": "salary" }
        ]
    } );
} );
我只需要编辑“ajax”。当您使用“type”“POST”时,它就工作了

多谢各位

格里茨
Vegeta_77

您的服务器返回了什么错误?您的第二张图片中的错误消息也是,您能帮我找出什么
“ajax”:“@Url.Action(“List”,“DFS\u Akustik”)”
在浏览器中呈现?请显示HTML。显然,最后一列有一些内容datatables不喜欢。名字对吗?你能在Firebug中看到json响应吗?有完全相同的问题。你知道为什么这会解决这个问题吗?我们也遇到了这个问题。据我所知,这是因为生成的回调超过了GET请求的2048个字符限制。根据标准,这不是一个硬性限制,但许多web服务器都强制执行它。完美:)您节省了很多时间。我总是喜欢这种感觉,即使我解决了小问题。