【问题标题】:sending data through ajax to controller通过ajax向控制器发送数据
【发布时间】:2016-02-11 13:11:16
【问题描述】:

我正在使用 AJAX 将数据从视图发送到控制器。当 AJAX 函数在控制器端执行时,我只收到空值。请告诉我我的错误。

 public void      save_bookmark([Bind(Include="name,tags,link,email,admin,start_bookmark[],end_bookmark[]")]bookmarking obj_book)
    {
        bookmark obj = new bookmark();
        start_bookmark start_obj = new start_bookmark();
        end_bookmark end_obj = new end_bookmark();
        obj.name = obj_book.name;
        obj.link = obj_book.link;
        obj.tags = obj_book.tags;
        obj.user = obj_book.admin;
        obj.check = true;
        db.bookmarks.Add(obj);
        db.SaveChanges();
        /*foreach(int element in obj_book.start_bookmark)
        {
            start_obj.bookmarkid=int.Parse(obj);
            start_obj.start=
        }*/
    }


$.ajax({
   url: '@Url.Action("save_bookmark", "chopaal")',
   type: "POST",
   contentType: "text/html",
   data: { name:'#bookmark_name', tags:'#bookmark_tags', email:'#bookmark_email', link:'#link', start_bookmark:'#start', end_bookmark:'#end'},
   success: function () {
       window.alert('success!!');
   }
});

【问题讨论】:

  • '#bookmark_name' 这是选择器还是实际值
  • #bookmark_name 是html页面中输入字段的id
  • 请同时发布控制器操作。
  • 我是 ajax 的初学者,所以请告诉我在哪里犯了这个错误
  • 这很容易出错,在进行选择时始终使用类,尤其是当您有多个对象要选择时,它会更安全,并且您可以将对象归为一个具有相同类的对象

标签: jquery ajax


【解决方案1】:

首先您需要在变量中获取输入字段的值。 像这样

    var var1= $("[id$=bookmark_name]").val();
    var var2= $("[id$=bookmark_tags]").val();
    var var3= $("[id$=bookmark_email]").val();
    var var4= $("[id$=link]").val();
    var var5 = $("[id$=start]").val();
    var var6= $("[id$=end]").val();

            $.ajax({
                    type: 'POST',
                    url: "/ControllerName/save_bookmark",
                    contentType: "application/json; charset=utf-8",
                    data: JSON.stringify({ bookmark_name: var1, bookmark_tags: var2,bookmark_email: var3, link: var4, start: var5, end: var6 }),
                    success: function (data) {
                        alert("sucess");
                    },
                    async: false
                });

现在你的控制器应该是这样的

    [HttpPost]
    public void save_bookmark(string bookmark_name, string bookmark_tags, string bookmark_email, string link, string start, string end)
    {
       bookmark obj = new bookmark();
       //here you can get your data
       obj.name = bookmark_name;
       obj.tags = bookmark_tags;
       .
       .

       db.bookmarks.Add(obj);
       db.SaveChanges(); 
    }

将调试器放入控制器并检查视图传递的值

然后将其保存到您的数据库中。

让我知道它是否有效或你犯了什么错误。

祝你好运

【讨论】:

    猜你喜欢
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2017-08-30
    • 2013-01-03
    • 2014-10-31
    相关资源
    最近更新 更多