为啥 Asp.net Core 无法读取 Ajax 参数?

Posted

技术标签:

【中文标题】为啥 Asp.net Core 无法读取 Ajax 参数?【英文标题】:why Asp.net Core can not read Ajax parameters?为什么 Asp.net Core 无法读取 Ajax 参数? 【发布时间】:2020-10-02 13:58:12 【问题描述】:

我正在使用 Asp.net MVC Core 和 Jquery Ajax 插入到我的数据库中。

问题总结 我无法读取 Home-Controller 操作中的参数。这意味着我可以成功执行 Ajax 插件并使用跟踪点毫无问题地访问 Home 控制器,但无法检索传递的值“Vals”。

我试过了 使用 Ajax 块制作一个 Jquery 插件,将 JSON 字符串发送到 Home-Controller

JQuery 插件

(function ($) 
    $.fn.CallSqlServer = function (URL, JsonVal)
    
        var vals = JSON.stringify(JsonVal);
        var msg;
                $.ajax(
                    type: "Get",
                    url: URL,
                    data: vals,
                    dataType: "json",
                    contentType: 'application/json; charset=utf-8',
                    success: function (data) 
                        msg = data.msg;
                    ,
                    error: function () 
                        msg = "Error occured!!";
                    
                );
        return msg;
    
)(jQuery);

我这样称呼它

    $('#btninsert').click(function () 
        var Student = 
            ID: '10001',
            Name: 'Shashangka',
            Age: 31
        ;
        $('#btninsert').CallSqlServer("/Home/Index/",Student);
    );

Home-Controller => 动作索引

[HttpGet]
public IActionResult Index(string vals)

    return View(vals);

【问题讨论】:

【参考方案1】:

数据应该是代表URL查询参数和值的键值对:

(function ($) 
    $.fn.CallSqlServer = function (URL, JsonVal)
    
        var vals = JSON.stringify(JsonVal);
        var msg;
                $.ajax(
                    type: "Get",
                    url: URL,
                    data:
                       "vals": vals
                    ,
                    dataType: "json",
                    contentType: 'application/json; charset=utf-8',
                    success: function (data) 
                        msg = data.msg;
                    ,
                    error: function () 
                        msg = "Error occured!!";
                    
                );
        return msg;
    
)(jQuery);

【讨论】:

以上是关于为啥 Asp.net Core 无法读取 Ajax 参数?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net core prerender webpack 错误:TypeError:无法读取属性“过滤器”

在 ASP.NET Core 中使用 ajax 向控制器发送数据

我的 ASP.NET Core 应用程序说它无法读取 web.config

asp.net core 上传文件服务器拒绝是为啥?

在 ASP.NET CORE 表单中使用 AJAX 返回 JSON

在 ASP.NET Core 中读取环境变量