首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ajax调用并不是出于某种原因而调用的。

ajax调用并不是出于某种原因而调用的。
EN

Stack Overflow用户
提问于 2021-04-30 11:10:15
回答 1查看 70关注 0票数 0

似乎一切输入都是正确的,但是有多少次尝试过--没有效果。请告诉我这里可能出了什么问题。我的假设是

  1. 或其他什么地方的url是错误的,它只是无法进入这个方法。
  2. 可能是因为我正在创建帖子,并且我试图从Postsss获取数据(尽管这似乎是应该这样做的。

)。

该表根本不填充数据。也就是说,ajax方法本身由于某种原因没有接收它们,但是如果我在url中指定了正确的地址,为什么呢?

控制器方法

代码语言:javascript
运行
复制
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");
        }

    }
}

观照

代码语言:javascript
运行
复制
        <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>
    
    }
EN

回答 1

Stack Overflow用户

发布于 2021-05-01 18:14:31

试试这个:

代码语言:javascript
运行
复制
 $(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字符串,因为您没有返回数据对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67332874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档