【问题标题】:jQuery.Ajax with MVCjQuery.Ajax 与 MVC
【发布时间】:2013-02-25 08:40:57
【问题描述】:

我正在尝试使用 jQuery ajax 将用户在文本框中输入的值保存到数据库中。但我很震惊如何进行。到目前为止我做了什么:

用户点击按钮,我调用 jQuery 函数并调用控制器

comments = $("#txtComments").val();
var request = $.ajax({
                url: "/Home/SaveCommentsData",
                type: "POST",
                data: { comment: comments },
                dataType: "json"
            });

我不确定如何在控制器中获取此注释值并在成功时将值发送回 jQuery。

【问题讨论】:

  • SaveCommentsData 是控制器中操作的名称?您使用的是什么 MVC?
  • 浏览器控制台说什么?有错误吗?
  • @yechie 是的,这是一个动作。 MVC4
  • 您也可以像 'cmets='+cmets 一样将请求发送为纯字符串。您的浏览器控制台是否显示数据进入服务器?

标签: jquery asp.net-mvc


【解决方案1】:

试试这样的数据

数据:{'comment':cmets}

并在控制器操作中使用与字符串类型相同的变量

comments = $("#txtComments").val();
var request = $.ajax({
                url: "/Home/SaveCommentsData",
                type: "POST",
                data: { 'comment': comments },
                dataType: "json"
            });

控制器

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult SaveCommentsData( string comment)
        {

//
}

问候

【讨论】:

  • 如果我想在数据中发送多个文本怎么办:{comment: cmets}?
【解决方案2】:

脚本

$.ajax({
   url: "/Home/SaveCommentsData",
   type: "POST",
   data: { comment: comments },
   dataType: "json",
   success: function (data) {  
       // data is returning value from controller
       // use this value any where like following
       $("#div_comment").html(data);
   }
});

控制器

[HttpPost]
public ActionResult SaveCommentsData(string comment)
{
    // save comment
    var result = someData; // maybe saved comment
    return Json(result);
}

【讨论】:

    【解决方案3】:

    客户端脚本-jQuery

    $.ajax({
       url: "/Home/SaveCommentsData",
       type: "post",
       data: { comment: comments },
       dataType: "application/json",
       success: function (data) {  
           if(data.Success)
           {
              alert('Done');
           }
       }
    });
    

    控制器端代码

    [HttpPost]
    public ActionResult SaveCommentsData(string comment)
    {
        // save comment
        return Json(new {Success:true});
    }
    

    【讨论】:

    • 谢谢。我试过了,工作正常。但是成功功能警报不起作用?
    【解决方案4】:

    试试这个

    comments = $("#txtComments").val();
    var request = $.ajax({
        url: '@Url.Action("SaveCommentsData","Home")',
        type: "POST",
        data: JSON.stringyfy({ 'comment': comments }),
        dataType: "json",
        success: function(data){
          alert(data.status);
        }
    });
    

    控制器

    [HttpPost]
    public JsonResult SaveCommentsData(string comment)
    {
       //Do something
       return Json(new
                {
                    status = false
                });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 2012-09-26
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      相关资源
      最近更新 更多