Tôi đang cố gắng thực hiện một hành động trên bộ điều khiển mà không chuyển hướng đến chế độ xem được liên kết cho hành động đó. Để có một ví dụ điển hình về những gì tôi đang cố gắng đạt được, hãy xem trang web music.xbox.com. Khi bạn thêm bài hát vào danh sách phát đã chọn từ menu bật lên - trang sẽ chỉ hiển thị thông báo mà không có bất kỳ chuyển hướng hoặc làm mới nào. sao có thể như thế được?ASP.NET MVC - Thực hiện hành động điều khiển mà không cần chuyển hướng
gì tôi có là như sau: tôi có một cái nhìn cục bộ _playlistPopupMenu mà ám danh sách các danh sách nhạc như sau:
_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>
}
}
Hành động PlaylistController AddSong là như sau:
public PartialViewResult AddSong(int? playlistId, int? songId)
{
if (ModelState.IsValid)
{
db.AddSongToPlaylist(playlistId, songId);
db.SaveChanges();
return PartialView("_AddToPlaylist", "");
}
return PartialView("_AddToPlaylist", "");
}
Tôi đang vật lộn với những gì cần đặt trong chế độ xem một phần _AddToPlaylist mà tôi nghĩ rằng tôi cần có thể phân phối đặt một thông báo của một số loại (Possiblly sử dụng PNotify thêm vào cho Bootstrap). MVC muốn luôn chuyển hướng đến ../Playlist/AddSong?playlistId=1 & songId = 1
Bất kỳ ý tưởng nào về cách hoàn thành phần cuối cùng của vấn đề sẽ rất tuyệt.
Nó không chuyển hướng (HTTP 3xx), nó trở về một cái nhìn cục bộ. Bạn nên cân nhắc sử dụng các yêu cầu AJAX thông qua javascript, để yêu cầu không đồng bộ, xử lý phản hồi và hiển thị những gì bạn cần trong trang hiện tại. –
Như đã đề cập ở trên, bạn cần phải tự động hiển thị một số phần nhất định của trang của bạn (sử dụng các yêu cầu AJAX). Xem http://stackoverflow.com/questions/11134701/jquery-load-part-of-external-html để biết ý tưởng. –