Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ajax调用由于某些原因而不调用_C#_Asp.net_Json_.net_Ajax - Fatal编程技术网

C# ajax调用由于某些原因而不调用

C# ajax调用由于某些原因而不调用,c#,asp.net,json,.net,ajax,C#,Asp.net,Json,.net,Ajax,似乎所有的东西都输入正确,但是有多少没有尝试过。请告诉我这里可能出了什么问题。我的假设是 或者url有问题,无法访问该方法 也许问题在于我正在创建帖子,并且试图从Postsss获取数据(尽管这似乎是应该做的事情) 表中没有填充数据,也就是说,由于某种原因,ajax方法本身不接收数据,但是如果我在url中指定了正确的地址,为什么呢 控制器方法 using Project.Models; using Microsoft.AspNetCore.Authorization; using Microsof

似乎所有的东西都输入正确,但是有多少没有尝试过。请告诉我这里可能出了什么问题。我的假设是

  • 或者url有问题,无法访问该方法
  • 也许问题在于我正在创建帖子,并且试图从Postsss获取数据(尽管这似乎是应该做的事情)
  • 表中没有填充数据,也就是说,由于某种原因,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");
            }
    
        }
    }
    
    使用Project.Models;
    使用Microsoft.AspNetCore.Authorization;
    使用Microsoft.AspNetCore.Mvc;
    使用Microsoft.Extensions.Logging;
    使用Newtonsoft.Json;
    使用Newtonsoft.Json.Linq;
    使用RestSharp;
    使用制度;
    使用System.Collections.Generic;
    使用系统诊断;
    使用System.Linq;
    使用System.Threading.Tasks;
    使用System.Text.Json;
    命名空间项目.控制器
    {
    [授权]
    公共类HomeController:控制器
    {
    公共异步任务照片()
    {
    返回视图();
    }
    公共异步任务Photosss()
    {
    var client=新的RestClient(“https://jsonplaceholder.typicode.com/photos");
    var请求=新的重新请求(Method.GET);
    IRestResponse response=wait client.ExecuteAsync(请求);
    var content=JsonConvert.DeserializeObject(response.content);
    var jAlbumsArray=content.ToObject();
    foreach(jAlbumsArray中的var obj)
    {
    if(jAlbumsArray.IndexOf(obj)==1)
    {
    foreach(obj.Properties()中的var p)
    {
    如果(p.Name==“标题”)
    obj[“title”]=“此标题已更改”//替换某些数据
    }
    }
    }
    var jAlbums=JArray.FromObject(jAlbumsArray);
    var albums=jAlbums。选择(x=>新照片
    {
    Id=(int)x[“Id”],
    AlbumId=(int)x[“AlbumId”],
    Title=(字符串)x[“Title”],
    Url=(字符串)x[“Url”],
    ThumbnailUrl=(字符串)x[“ThumbnailUrl”]
    }).ToList();
    var json=JsonConvert.serialized对象(相册);
    返回内容(json,“应用程序/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>
        
        }
    
    
    白蛋白
    身份证件
    标题
    网址
    ajax调用
    @节脚本{
    $(文档).ready(函数(){
    $(“#photosTable”).DataTable(
    {
    阿贾克斯:{
    url:“主页/帖子”,
    键入:“获取”,
    contentType:“应用程序/json”,
    数据类型:“json”,
    dataSrc:“数据”
    },
    “栏目”:[
    {数据:“AlbumId”},
    {数据:“Id”},
    {数据:“标题”},
    {数据:“Url”}
    ]
    })
    }
    }
    }
    
    试试这个:

     $(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字符串。

    您的url不应该是
    Home/Photosss
    吗?或者我理解的问题有误吗?
    Home/Postsss
    看起来像是一个问题你没有在控制器中定义url。无论如何,你可以随时检查你正在使用的浏览器的开发工具并查看你的网络流量是的,谢谢,这是我的错误。我更改了,但仍然没有更改。在网络流量中,我没有找到photossscall@memento下面的答案能解决你的问题吗?