似乎一切输入都是正确的,但是有多少次尝试过--没有效果。请告诉我这里可能出了什么问题。我的假设是
)。
该表根本不填充数据。也就是说,ajax方法本身由于某种原因没有接收它们,但是如果我在url中指定了正确的地址,为什么呢?
控制器方法
using Project.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using RestSharp;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using System.Text.Json;
namespace Project.Controllers
{
[Authorize]
public class HomeController : Controller
{
public async Task<IActionResult> Photos()
{
return View();
}
public async Task<IActionResult> Photosss()
{
var client = new RestClient("https://jsonplaceholder.typicode.com/photos");
var request = new RestRequest(Method.GET);
IRestResponse response = await client.ExecuteAsync(request);
var content = JsonConvert.DeserializeObject<JArray>(response.Content);
var jAlbumsArray = content.ToObject<List<JObject>>();
foreach (var obj in jAlbumsArray)
{
if (jAlbumsArray.IndexOf(obj) == 1)
{
foreach (var p in obj.Properties())
{
if (p.Name == "title")
obj["title"] = "this title is changed"; //replace some data
}
}
}
var jAlbums = JArray.FromObject(jAlbumsArray);
var albums = jAlbums.Select(x => new Photos
{
Id = (int)x["id"],
AlbumId = (int)x["albumId"],
Title = (string)x["title"],
Url = (string)x["url"],
ThumbnailUrl = (string)x["thumbnailUrl"]
}).ToList();
var json = JsonConvert.SerializeObject(albums);
return Content(json, "application/json");
}
}
}
观照
<table id="photosTable">
<thead>
<tr>
<th>AlbumId</th>
<th>Id</th>
<th>Title</th>
<th>Url</th>
</tr>
</thead>
</table>
ajax call
<link href="//cdn.datatables.net/1.10.24/css/jquery.dataTables.min.css" />
@section scripts{
<script src="//cdn.datatables.net/1.10.24/js/jquery.dataTables.min.js"></script>
<script>
$(document).ready(function () {
$("#photosTable").DataTable(
{
ajax: {
url: "Home/Postsss",
type: "GET",
contentType: "application/json",
datatype: "json",
dataSrc: "data"
},
"columns": [
{ data: "AlbumId" },
{ data: "Id" },
{ data: "Title" },
{ data: "Url" }
]
})
}
}
</script>
}
发布于 2021-05-01 10:14:31
试试这个:
$(document).ready(function () {
$("#photosTable").DataTable(
{
ajax: {
url: "/Home/Photosss",
type: "GET",
datatype: "json",
dataSrc: ""
},
"columns": [
{ data: "AlbumId" },
{ data: "Id" },
{ data: "Title" },
{ data: "Url" },
{ data: "ThumbnailUrl" }
]
})
}
);
更改: 1.在表标题中添加ThumbnailUrl列。2.删除内容类型标头。3.使dataSrc值变为emtpy字符串,因为您没有返回数据对象。
https://stackoverflow.com/questions/67332874
复制相似问题