AJAX调用可从ASP.NET Core Web API动态构建DataTable - javascript

当用户单击另一个表的行时,我试图填充一个表。我在第一个表的onClick标记中有一个<tr>事件,该事件触发一个函数将三个属性发送到我的webapi。我有一个命名处理程序,它使用三个属性并将它们用作另一种方法的输入值,以从Azure表中检索数据。响应是预格式化的JSON数据,我将其提供给JavaScript代码。

我在渲染视图中看到的是一长串JSON文本;完全没有列或行。根据documentation,我应该能够将dataSet绑定到dataDataTable值,并动态构建表。

JavaScript:

function GetActivityLog(pk, rk, cn) {
    var dataSet = $('#tblActivityLogs').load('/Nodes?handler=ActivityLog' + '&PartitionKey=' + pk + '&RowKey=' + rk + '&ComputerName=' + cn);
    $('#tblActivityLogs').DataTable({
        "ajax": {
        url: '/Nodes?handler=ActivityLog' + '&PartitionKey=' + pk + '&RowKey=' + rk + '&ComputerName=' + cn,
        data: dataSet
        }
    });
    console.dir(dataSet);
}

$(document).ready(function () {
$('#tblActivityLogs').DataTable({
    "order": [[0, "desc"]],
    columnDefs: [
            {
                targets: 0,
                className: 'dt-body-nowrap'
            }
        ]
    });
})

剃刀/ HTML:

<tr onmouseover="" style="cursor: pointer;" role="button" id="getActivtiy" onclick="GetActivityLog('@item.PartitionKey','@item.RowKey','@item.ComputerName');">

HTML表格:

<div class="row">
    <div class="col-lg-12">
        <table id="tblActivityLogs" class="display"></table>
    </div>
</div>

C#代码:

public async Task<ContentResult> OnGetActivityLog([FromQuery] string PartitionKey, string RowKey, string ComputerName)
{
    Activities = await _azureTableConnection.GetActivitiesAsync(PartitionKey, RowKey, ComputerName);
    return Content(JsonConvert.SerializeObject(new { Activities }));
}

console.dir(dataSet)输出:

AJAX调用可从ASP.NET Core Web API动态构建DataTable - javascript

更新:

在ajax调用之前设置一个断点以测试功能和输入值,但仍然会收到(未定义)错误。

参考方案

您只需要对代码进行一些小的更改:

function GetActivityLog(pk, rk, cn) {
 $.ajax({
  url:'/Nodes?handler=ActivityLog' + '&PartitionKey=' + pk + '&RowKey=' + rk + '&ComputerName=' + cn
 }).done(function(response){
   $('#tblActivityLogs').DataTable( {
     data: response
   });
 });
}

无法将路线映射为行动,ASP.NET Core Web API - c#

我正在研究Web API项目,并且遇到以下问题:我尝试使用以下网址(https://localhost:44328/api/Users/GetUserBy?username=myusername&password=mypassword)调用名为“ GetUserBy”的操作方法,但在浏览器中收到的结果如下所示:{"id":[�…

我可以在没有相应C#对象的情况下在API上接收JavaScript对象吗? - javascript

我有一个Web API 2控制器。我正在通过客户端从客户端发送JavaScript对象:myObject = {propertyOne: 'Hi', propertyTwo: 'Bye'} 我是否必须在C#中使用这些属性创建一个类,以将该对象作为Web API控制器的参数来接收? public void control…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

调用SignalR Hub不适用于Asp.Net Core Web API - c#

我是SignalR的新手。我正在尝试设置一个Asp.Net Core WebAPI,以便其他客户端可以使用SignalR连接到它并获取实时数据。我的Hub类是:public class TimeHub : Hub { public async Task UpdateTime(string message) { await Clients.All.SendAs…

ddl在服务器中未更新-asp.net - javascript

我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……