如何在Mvc控制器中将json数据发送到jsonresult函数?

时间:2019-04-02 10:24:26

标签: c# json ajax asp.net-mvc

我正在尝试将我的电子邮件和密码发送到我的家庭Controller jsonresult方法。 电子邮件和密码的值显示在第一个警报中,但是当我将userCredential传递给数据时,它将显示警报未定义。 电子邮件和密码的值未在ajax post方法中传递

    $("#button_val").click(function () {
        var userCrdential = "email=" + $("#username").val() + "&password=" 
                              + $("#pwd").val();
        alert(userCrdential);
        $.ajax({
            type: "POST",
            url: "/Home/adduser",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: userCrdential,
            success: function (res) {
                //  alert("data is posted successfully");
                if (res.success == true)
                    alert("data is posted successfully");
                else {
                   // alert("Something went wrong. Please retry!");
                }
            },
            error: function (xhr, textStatus, errorThrown) {
                alert(xhr.statusMessage);
            }
        });
    });.

控制器

[HttpGet] public JsonResult adduser(user obj) { }

2 个答案:

答案 0 :(得分:1)

通过查看您的评论,我观察到的第一件事是,您正在ajax调用上使用post方法,而在控制器级别上,它是http get。可能是问题所在。最好也为您的操作方法添加代码。

这是在mvc中通过ajax发布对象的示例示例,

    [HttpPost]  
    public ActionResult YourMethodName(MyViewModel myViewModel)  
    {            
     //your code goes here.
    }

您可以像下面这样进行ajax调用,

   var requestData = {
     Email: 'pass the email value here',
     Password: 'pass the password value here')
  };


  $.ajax({
     url: '/en/myController/YourMethodName',
     type: 'POST',
     data: JSON.stringify(requestData),
     dataType: 'json',
     contentType: 'application/json; charset=utf-8',
     error: function (xhr) {
        alert('Error: ' + xhr.statusText);
     },
     success: function (result) {

     },
     async: true,
     processData: false
  });

答案 1 :(得分:0)

在控制器方法中,您使用[HttpGet],但在ajax请求中,您编写POST。因此,转到一个选项POSTGET。我用GET编写解决方案,首先使用此方法更改了Controller方法:

    [HttpPost] 
    public JsonResult adduser(string email, string password) { 
    // work here
    }

然后修改您的代码:

$("#button_val").click(function () {
            var userCrdential = "email:"+ $("#username").val()+", password:"+ $("#pwd").val();
            alert(userCrdential);
            $.ajax({
                type: "POST",
                url: "/Home/adduser",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                data: {userCrdential },
                success: function (res) {
                    //  alert("data is posted successfully");
                    if (res.success == true)
                        alert("data is posted successfully");
                    else {
                       // alert("Something went wrong. Please retry!");
                    }
                },
                error: function (xhr, textStatus, errorThrown) {
                    alert(xhr.statusMessage);
                }
            });
        });