Asp.net mvc 3 asp.net mvc中jquery$.ajax post请求后异步返回数据
在向控制器操作发出$.ajax post请求后,我希望从服务器获取信息,然后更新我的部分视图,例如,我在视图中呈现了一个列表,我使用$.ajax post请求从列表中删除一个项目,然后我希望我的列表异步更新自身 以下是从列表中删除项目的my函数: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',
$(".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删除已删除的项目
- 从操作返回部分视图
- 成功后,用呈现的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"
});
});