通过ajax将数据发送到控制器

时间:2016-02-11 13:11:16

标签: jquery ajax

我使用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!!');
   }
});

1 个答案:

答案 0 :(得分: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(); 
    }

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

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

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

祝你好运