jQuery Ajax发布到MVC控制器不起作用(返回null)

我的Ajax发布到控制器不起作用。下面的代码是我要执行的操作的基本示例。

在调试模式下,即使我添加了属性,它也会返回null且返回给ajax调用的值是空的

public IActionResult Login([FromBody]Data data)

它仍然不起作用

这是我的所有ajax

$('#SignIn').click(function () {
    $('#SignIn').val('Please Wait');            
    Ajax_Login();
});

function Ajax_Login() {           
    var data = {
        username: $('#Email').val().trim(),
        password: $('#Password').val()
    };
    $.ajax({
        type: "POST",
        url: "/Upload/Login",
        data: data,
        contentType: "application/json",
        dataType: "json",
        success: function (message) {
            alert(message);             
        },
        error: function (message) {
            alert(message);  
        }

我也尝试使用 data: JSON.stringfy({ User: Username, Pass: Password })

这是我的控制器

public class Data
{
    public string Username { get; set; }
    public string Password { get; set; }
}

控制器方式

[HttpPost]
public IActionResult Login(Data data)
{
    var message = data.Username + " and " + data.Password;
    return Json(message);
}
用户名

您在请求中发送对象,因此您需要删除contentType: "application/json",ajax函数中的选项,以便它使用default 'application/x-www-form-urlencoded; charset=UTF-8'

或者(如果您确实使用'application/json'),则需要使用来对对象进行字符串化data: JSON.stringify(data),但是,在mvc中,如果通过牢固地绑定到模型正确生成了视图(例如使用<input asp-for="Username" />或),则几乎不必使用这些选项@Html.TextBoxFor(m => m.Username)正确生成视图后,您可以使用var data = $(yourForm).serialize();正确地序列化所有表单控件。

请注意,之所以JSON.stringfy({User: Username, Pass: Password})无效,是因为您的模型不包含名为User和的属性Pass

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JQUERY ajax将JSON发布到C#MVC控制器,但是传入的数据为null

在Spring MVC控制器中设置jQuery日期不起作用

使用jquery ajax发布到CakePHP控制器

Cookie 在 Jquery post 中返回 null 到 MVC Core2 控制器

从控制器返回消息到ajax请求jquery

jQuery AJAX发布不起作用Codeigniter

jQuery发布到控制器并重定向以查看MVC ASP.net

使用jQuery将简单的JSON发布到MVC动作控制器方法

如何通过JQuery ajax调用将dataTable的选定行的数据发布到php控制器

如何在MVC控制器中使用JQuery AJAX发布多个数组?

无法发送电子邮件 - Azure MVC 站点在尝试通过控制器将表单发布到 ajax 请求时从 jquery.min.js:2 返回 404

jQuery发布到ASP.NET API控制器

Jquery Serialize 无法发布到 Laravel 控制器

html.beginForm通过ASP> NET-MVC5中的jQuery Ajax函数将List <强类型输入>的空值发布到控制器

将表单发布到ASP.NET Core MVC中的控制器不起作用

使用AJAX将数据发布到控制器不起作用,Code Igniter

jQuery AJAX简单PHP发布不起作用

从jQuery POST / GET数据到MVC 4控制器并返回View的最佳方法

jQuery Ajax,从mvc.net控制器返回成功/错误

使用jQuery Ajax将对象列表传递到ActionResult MVC控制器方法中

使用jQuery Ajax将对象列表传递到MVC控制器方法中

发送使用jQuery Ajax的SVG字符串到MVC控制器?

Asp.net Core,如何在JQuery / Ajax中将文件和模型发布到控制器?

使用Jquery Ajax将模型和2个复选框列表发布到控制器

jQuery ajax-调用各种MVC控制器动作

jQuery Ajax和ASP.NET MVC控制器

jQuery Ajax MVC部分视图不起作用

jQuery HTTP发布不起作用

jQuery发布请求不起作用