Arslan Butt
Arslan Butt

Reputation: 21

sending data through ajax to controller

I'm sending data from view to controller using AJAX. When AJAX function executes on the controller side I receive only null values. Please tell me my mistake.

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

Upvotes: 2

Views: 80

Answers (1)

Mayank Patel
Mayank Patel

Reputation: 1571

First Your need to take value of input field in variables. like this

    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
                });

Now your controller should like this

    [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(); 
    }

put debugger in controller and check values passed from view

Then save it into your database.

Let me know if it works or what error you gou.

Good luck

Upvotes: 1

Related Questions