Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 要将发布的Json数据保存到数据库中吗_Asp.net Mvc_Json_Jquery_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 要将发布的Json数据保存到数据库中吗

Asp.net mvc 要将发布的Json数据保存到数据库中吗,asp.net-mvc,json,jquery,asp.net-mvc-4,Asp.net Mvc,Json,Jquery,Asp.net Mvc 4,我通过AJAX发布JSON数据,发布方式如下: var length = $('.organizer-media').length; var contents = $('.organizer-media'); var Title; type == "New" ? Title = $('#newName').val() : Title = $('#Playlist option:selected')

我通过AJAX发布JSON数据,发布方式如下:

var length = $('.organizer-media').length;
                var contents = $('.organizer-media');

                var  Title;
                type == "New" ? Title = $('#newName').val() : Title = $('#Playlist option:selected').text();

                var playlistid = $('#Playlist').val()
                type == "New" ? playlistid = 0 : playlistid = $('#Playlist').val()

                var data = [];

                for (var i = 0; i < length; i++) {
                    data[i] = { ID: parseInt(contents[i].id), MetaID: parseInt(contents[i].title) }
                }
               var totaldata={ data: data, playlistid: parseInt(playlistid),Title:Title };    
                $.ajax({
                    type: 'POST',
                    data: JSON.Stringify(totaldata),
                    url: '/Builder/Save',
                    success: function () {
                        alert("Playlist saved successfully!!");
                    }
                })
我将ItemViewModel制作为:

public class ItemEditViewModel
    {
        public long ID { get; set; }
        public long MetaID { get; set; }
    }
我的控制器代码如下:

[HttpPost]
        public ActionResult Save(ItemEditViewModel[] data,long playlistid=0, string Title="")
        {



            for (int i = 0; i < data.Length; i++)
            {
                var pc = db.PlaylistContents.FirstOrDefault(x => x.PlaylistContentId == data[i].ID);
                if (pc == null)
                {
                    pc = new PlaylistContent();
                    db.PlaylistContents.Add(pc);
                }
                pc.ContentMetaDataId = data[i].MetaID;
                pc.PlaylistContentSequenceId = i + 1;
            }
db.SaveChanges();

            return Json(new { foo = "bar", baz = "Blech" });
        }
[HttpPost]
公共操作结果保存(ItemEditViewModel[]数据,长播放ID=0,字符串Title=”“)
{
for(int i=0;ix.playlicontentId==data[i].ID);
如果(pc==null)
{
pc=新播放内容();
db.播放内容.添加(pc);
}
pc.ContentMetaDataId=data[i].MetaID;
pc.contentSequenceId=i+1;
}
db.SaveChanges();
返回Json(新的{foo=“bar”,baz=“Blech”});
}
在控制器中执行数据时,它不接受发布的数据作为其ViewModel值。

我的问题得到解决。 由于我已经将array与其他两个变量结合起来发布,所以我只需要将array字符串化&而不是发布整个ajax数据。 正如您在下面的代码中所看到的:

 var totaldata =  { data: data, playlistid: parseInt(playlistid), Title: Title };
                $.ajax({
                    type: 'POST',
                    data: { data: JSON.stringify(data), playlistid: parseInt(playlistid), Title: Title, deleted: JSON.stringify(deleted) },
                    traditional:true,
                    url: 'Save',
                    success: function (data) {

                        alert("Playlist saved successfully!!");

                    }
                })
在上面的代码中,我刚刚对数组进行了stringify,而不是对其他数据进行了stringify


感谢您的合作。

可能想尝试一下:JSON是如何解析的?这是什么@Tieson TI只需保存传递到ViewModel@RahulRJ基本上是服务器端的Firebug。它让您了解ASP.NET应用程序中的路由和绑定机制实际上是如何工作的。
 var totaldata =  { data: data, playlistid: parseInt(playlistid), Title: Title };
                $.ajax({
                    type: 'POST',
                    data: { data: JSON.stringify(data), playlistid: parseInt(playlistid), Title: Title, deleted: JSON.stringify(deleted) },
                    traditional:true,
                    url: 'Save',
                    success: function (data) {

                        alert("Playlist saved successfully!!");

                    }
                })