javascript - Ajax jquery 发送 Null 值到 Mvc4 Controller

标签 javascript jquery asp.net ajax asp.net-mvc-4

我有一个与ajax调用请求相关的问题,在堆栈溢出上搜索它尝试了我得到的所有相关帮助,但无法解决问题。问题是我使用此代码从我的 View 向 Controller 请求。

<script type="text/javascript">

    $(document).ready(function () {

        $('#contactDiv ').click(function() {

           var  number = $(this).find('.ContactNumber').text();

            var dataJson = {"contactNumber": number};

            $.ajax({
                type: "POST",
                url: "../contactWeb/messages",
               data: JSON.stringify(dataJson),
               //data: dataJson,
                 //contentType: "application/json",
                  contentType: "application/json",
                cache: false,
                success: function (msg) {
                    //msg for success and error.....
                    alert(msg);
                    return true;
                }
            });

        });

    });

</script>

接收调用的 Controller 是

      [HttpPost]
        public JsonResult messages(string dataJson) 
        {

            Int64 userID = Convert.ToInt64(Session["userId"]);
            try
            {
                List<MessagesModel> messagesModel = new List<MessagesModel>();
                IMessages MessageObject = new MessagesBLO();

                messagesModel = MessageObject.GetAllMessagesWeb(userID , dataJson);

                //ViewData["Data"] = messagesModel;



            }
            catch (Exception e)
            {

            }

            //return View();

            string msg = "Error while Uploading....";
            return Json(msg, JsonRequestBehavior.AllowGet);
        } 

但它将 NULL 值传递给 Controller ​​

最佳答案

有几个问题需要解决

需要什么

JsonRequestBehavior.AllowGet

当您的action类型为post时。

如果您使用 asp.net mvc4 使用 Url.Action 指定 url,即

url:"@Url.Action("ActionName","ControllerName")"

现在谈论您的问题。

您的参数名称必须匹配,将 dataJson 更改为 contactNumber。虽然可以使用,但不需要使用 JSON.stringify 作为您正在传递单个字符串参数。

[HttpPost]
        public JsonResult messages(string contactNumber) 
        {

            Int64 userID = Convert.ToInt64(Session["userId"]);

关于javascript - Ajax jquery 发送 Null 值到 Mvc4 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22706048/

相关文章:

javascript - 当我单击按钮时,它仅在第一个单击时在输出 div 'mouse_move' 上显示带有 jQ​​uery ajax 的图像,但在另一次单击时不显示相同的图像

c# - SignInManager.IsSignedIn(User) 与 User.Identity.IsAuthenticated

asp.net - Visual Studio "Add As Link"在调试时不起作用

javascript - Jquery 模板 if xx && if yy

javascript - 如何从文本框中获取姓名和电子邮件ID?

javascript - 如何结合这两个视频功能?

asp.net - 最新版本的 Ajax 控制工具包加载 150 个 .axd 文件

javascript - knockout : Passing click event data to a div

javascript - chop 每个 div 中的段落

javascript - promise - 链接解决/拒绝