Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 3 asp.net mvc中jquery$.ajax post请求后异步返回数据_Asp.net Mvc 3_Jquery - Fatal编程技术网

Asp.net mvc 3 asp.net mvc中jquery$.ajax post请求后异步返回数据

Asp.net mvc 3 asp.net mvc中jquery$.ajax post请求后异步返回数据,asp.net-mvc-3,jquery,Asp.net Mvc 3,Jquery,在向控制器操作发出$.ajax post请求后,我希望从服务器获取信息,然后更新我的部分视图,例如,我在视图中呈现了一个列表,我使用$.ajax post请求从列表中删除一个项目,然后我希望我的列表异步更新自身 以下是从列表中删除项目的my函数: $(".btnDeleteCurrentFavSong").click(function () { var songId = $(this).attr('name'); $.ajax({ type: 'POST',

在向控制器操作发出$.ajax post请求后,我希望从服务器获取信息,然后更新我的部分视图,例如,我在视图中呈现了一个列表,我使用$.ajax post请求从列表中删除一个项目,然后我希望我的列表异步更新自身

以下是从列表中删除项目的my函数:

 $(".btnDeleteCurrentFavSong").click(function () {

    var songId = $(this).attr('name');

    $.ajax({
        type: 'POST',
        url: "/Home/DeleteCurrentFav/",
        data: { id: songId },
        success: ShowMsg("Song deleted successfully"),
        error: ShowMsg("There was an error therefore song could not be deleted, please try again"),
        dataType: "json"
    });
});

我是否应该重定向到将歌曲列表返回到视图的ajax成功操作

这取决于您希望提供的用户体验。约定要求向用户显示其操作的效果。从您的示例中可以看出,您是通过
ShowMsg
函数执行此操作的。至于你是否应该重定向,恐怕没有什么权威可言,在你的网站上做任何一致的事情,让用户感觉自然。

选项A

  • 从操作返回已删除的项目id
  • 成功后使用js删除已删除的项目
方案B

  • 从操作返回部分视图
  • 成功后,用呈现的html替换容器

如果单击的列表项如下所示:

<li name="120">Artist - Title</li>

亲爱的,我没想到!简单,这就是我需要的这里有一个可能的错误。当用户比响应快,并且在获取响应之前删除了一些其他行时,将只删除最后一行,因为songId具有最后一个值。这就是为什么我建议返回带有响应的已删除项目id,并使用它代替在另一个范围中设置的值
$(".btnDeleteCurrentFavSong").click(function () {

    var songId = $(this).attr('name');

    $.ajax({
        type: 'POST',
        url: "/Home/DeleteCurrentFav/",
        data: { id: songId },
        success: function () {
            ShowMsg("Song deleted successfully");
            $("li[name=" + songId + "]").remove();
        },
        error: ShowMsg("There was an error therefore song could not be deleted, please try again"),
        dataType: "json"
    });
});