如何将 Ajax Json 对象传递给 .Net Core 中的控制器类?

拉胡尔·纳格拉莱

我们正在尝试向我们的 Core Web API 发出 Ajax 请求,并将dataJson 结果返回给 Controller 进行进一步处理,其中包括 Json 对象结果的反序列化,Ajax 请求工作正常,我们能够获得所需的 Json 数据在data

这里的任何人都可以请建议更改或替代方案来实现这一目标吗?

查看(Ajax 请求)

@section scripts
{
<script type="text/javascript">
    $(document).ready(function () {
    GetEventDetails('@Url.Content("~/")');
    });



    function GetEventDetails(contextRoot) {
    $.ajax({
    type: "GET",
    url: contextRoot + "api/EventsAPI",
    dataType: "json",
    success: function (data) {
        debugger;
        var datavalue = data;
        contentType: "application/json";
        //Send data to controller ???
        console.log(data);
    },
    error: function (xhr) {
        alert(xhr.responseText);
    }
    });
    }
</script>
}

控制器.cs

public ActionResult Index()
{    
    /*Do all stuff before returning view 
    1. Get Json Data from Ajax request
    2. Deserialize the obtained Json Data
    3. return to view
    */
    return View("Index");
}

更新:

我已经尝试过@J 给出的解决方案。Doe,但仍然无法获得结果集。请检查屏幕截图和下面的代码..

阿贾克斯请求:

function GetEventDetails(contextRoot) {        
        $.ajax({
            type: "GET",
            url: contextRoot + "api/EventsAPI",
            dataType: "json",
            success: function (data) {
                debugger;
                var datavalue = data;
                contentType: "application/json; charset=utf-8";                 
                console.log(data);
                var EventJson = data;
                console.log(EventJson);
                $.ajax({             
                    type: "POST",
                    url: "@Url.Action("Index")",
                    dataType: "json",
                    data: EventJson,
                    contentType: "application/json; charset=utf-8",                        
                        //data: EventJson,                       
                    success: function (data) {
                        alert(data.responseText);
                        console.log('Data received: ');
                        console.log(data.responseText);                           
                    },
                    failure: function (errMsg) {
                        console.log(errMsg);
                }
            });
    },
    error: function (xhr) {
        alert(xhr.responseText);
    }
});
}

类属性:

public class RootObject
{
    public Embedded _embedded { get; set; }
    public Links _links { get; set; }
    public Page page { get; set; }
}

这是动作结果控制器:

public ActionResult Index(RootObject model)
{
    if (model != null)
    {
        return Json("Success");
    }
    else
    {
        return Json("An Error Has occoured");
    }
    //return View("Index");
}

错误快照:

在此处输入图片说明

安东·托西克

1) 添加 [FromBody] 您要返回的控制器。这将使控制器期望一个 JSON 对象。

[HttpPost]
public ActionResult Index([FromBody]RootObject model)
    {
        if (model != null)
        {
            return Json("Success");
        }
        else
        {
            return Json("An Error Has occoured");
        }
        //return View("Index");
    }

2)如果这不起作用,您没有发布正确的 json 对象/您没有发布 json 对象,用于console.dir(EventJson);检查您在浏览器控制台中传递的对象。

3)如何在JS中创建JSON对象:https : //www.w3schools.com/js/js_json_stringify.asp

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将复杂的JSON对象传递给ASP.net控制器

如何将模型对象传递给ASP.NET Core中的javascript函数

如何将Ajax中的FormData和JSON对象传递给Spring MVC Controller?

如何将对象传递给 ASP.NET Core MVC 中的操作方法

Javascript:将复杂对象传递给我的控制器(asp core)

如何将强类型的复杂对象传递给MVC3中的Ajax方法

Spring MVC,将json对象传递给控制器并返回设置了模型属性的视图

将Flask中的JSON对象传递给JavaScript

将 JSON 对象传递给 Snowflake 中的存储过程

如何将两个参数传递给 ASP.NET Core MVC 中的控制器?

如何将C#对象传递给$ .ajax

如何在 .net core 中的控制器的新类对象中提供 ILogger<ClassName> 实例?

如何将json对象传递给$ eval函数

Python如何将JSON对象传递给函数?

如何将DropZone JSON对象传递给AngularJS?

从UITableView中选择行时,将Core Data对象传递给另一个视图控制器

我如何将对象传递给Ajax中的处理程序

如何将POCO类传递给.NET Core配置

如何将本地异常对象传递给类

如何将 JSON 数据发布到 ASP.NET Core Web API 中的控制器?

将JavaScript对象传递给控制器

如何通过ajax将对象数组传递给asp.net核心控制器

将JSON对象传递给MVC控制器时,string.empty转换为null

您可以使用命名的JSON属性将复杂对象传递给C#控制器吗?

将json从ajax传递给laravel控制器

如何从ASP.NET Core AJAX表单从控制器访问返回的json数据?

如何将javascript对象传递给C#MVC 4控制器

如何将多个相同类型的对象传递给控制器?

如何将多个对象传递给IGListKit节控制器