首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JsonResult在.NET核心Razor页面中调用Ajax后不返回数据

JsonResult在.NET核心Razor页面中调用Ajax后不返回数据
EN

Stack Overflow用户
提问于 2021-11-19 15:39:52
回答 2查看 523关注 0票数 0

我正在尝试将数据从我的ASP.Net Core (3.1) Razor应用程序中的一个ASP.Net方法返回到Razor,但是,我遇到了问题。

调试时,我可以看到Page中的OnGetCarList方法正在被击中,但是当数据被返回到Ajax Success函数并使用alert输出时,代码中没有错误,这就是我所看到的:

Ajax调用( Razor中)

代码语言:javascript
运行
复制
$.ajax({
          method: 'get',
          url: '/SPC/Index?handler=CarList',
          contentType: "application/json",
          dataType: "json",
          success: function (data) {
                alert(data);
                //addData(data)
                }
       })

页面模型

代码语言:javascript
运行
复制
public JsonResult OnGetCarList()
{
    var converted = DateTime.Now.ToOADate();

    DateTime one = DateTime.Now;
    DateTime two = DateTime.Now.AddDays(1);
    DateTime three = DateTime.Now.AddDays(2);

    DateTime sTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

    var c_one = (long)(one - sTime).TotalMilliseconds;
    var c_two = (long)(two - sTime).TotalMilliseconds;
    var c_three = (long)(three - sTime).TotalMilliseconds;

    dataPoints = new List<DataPoint>();

    dataPoints.Add(new DataPoint(c_one, 100));
    dataPoints.Add(new DataPoint(c_two, 200));
    dataPoints.Add(new DataPoint(c_three, 300));

    return new JsonResult(dataPoints);
}

//DataContract for Serializing Data - required to serve in JSON format
[DataContract]
public class DataPoint
{
    public DataPoint(double x, double y)
    {
        this.x = x;
        this.Y = y;
    }

    //Explicitly setting the name to be used while serializing to JSON.
    [DataMember(Name = "x")]
    public Nullable<double> x = null;

    //Explicitly setting the name to be used while serializing to JSON.
    [DataMember(Name = "y")]
    public Nullable<double> Y = null;
}

如有任何指导,将不胜感激。

谢谢。

更新

我将Ajax调用更新到Serge所说的内容,现在Alert给出了这样的内容。

代码语言:javascript
运行
复制
$.ajax({
                method: 'get',
                url: '/SPC/Index?handler=CarList',
                contentType: "application/json",
                dataType: "json",
                success: function (data) {
                    alert(JSON.stringify(data));
                    //addData(data)
                }
       })

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-19 16:39:56

修复类,删除所有属性并添加getter/setter

代码语言:javascript
运行
复制
public class DataPoint
{
    public DataPoint(double x, double y)
    {
       X = x;
       Y = y;
    }
  
 public double? X {get; set;}
 public double? Y {get; set;}

}

使用JSON.stringify进行测试

代码语言:javascript
运行
复制
        $.ajax({
        ....
        success: function (data) {
                alert(JSON.stringify( data));
        }, 
        .....
票数 1
EN

Stack Overflow用户

发布于 2021-11-20 07:42:42

可以将返回的对象视为服务器端类的实例:

代码语言:javascript
运行
复制
success: function (dataPoint) {
    alert(`X: ${dataPoint.x}\nY: ${dataPoint.y}`);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70037382

复制
相关文章

相似问题

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