我想在控制器上执行操作而不重定向到该操作的相关视图。有关我想要实现的一个很好的例子,请查看music.xbox.com网站。当您从弹出式菜单向选定的播放列表中添加歌曲时 - 该页面只显示没有任何重定向或刷新的通知。这怎么可能?ASP.NET MVC - 执行控制器操作而不重定向
我有如下: 我有呈现播放列表如下:a _playlistPopupMenu局部视图:
_PlaylistPopupMenu
@model List<OneMusic.Models.GetPlaylists_Result>
@if (Model.Count > 0)
{
<li style="height:2px" class="divider"></li>
foreach (var item in Model)
{
<li style="height:30px">@Html.DisplayFor(p => item.Name)
@Html.ActionLink(item.Name, "AddSong", "Playlist", new { playlistId = @item.PlaylistId, songId = 1 }, "")
</li>
}
}
的PlaylistController AddSong操作如下:
public PartialViewResult AddSong(int? playlistId, int? songId)
{
if (ModelState.IsValid)
{
db.AddSongToPlaylist(playlistId, songId);
db.SaveChanges();
return PartialView("_AddToPlaylist", "");
}
return PartialView("_AddToPlaylist", "");
}
我正在努力与_AddToPlaylist局部视图,我认为我需要能够显示打出某种类型的通知(可能使用PNotify添加进Bootstrap)。 MVC希望总是重定向到../Playlist/AddSong?playlistId=1 & songId = 1
关于如何完成问题的最后部分的任何想法都会很棒。
这不是重定向(HTTP 3XX),它返回一个局部视图。您应该考虑通过javascript使用AJAX请求,使请求异步,处理响应并在当前页面中呈现您需要的内容。 – 2014-08-27 13:41:13
如上所述,您需要动态呈现页面的某些部分(使用AJAX请求)。请参阅http://stackoverflow.com/questions/11134701/jquery-load-part-of-external-html了解一个想法。 – 2014-08-27 13:58:58