Ich versuche, eine Aktion auf einem Controller auszuführen, ohne auf die zugehörige Ansicht für diese Aktion umzuleiten. Für ein gutes Beispiel dessen, was ich erreichen möchte, werfen Sie einen Blick auf die Website music.xbox.com. Wenn Sie einer ausgewählten Wiedergabeliste einen Titel aus einem Popup-Menü hinzufügen, wird auf der Seite nur eine Benachrichtigung ohne Umleitung oder Aktualisierung angezeigt. wie ist das möglich?ASP.NET MVC - Controller-Aktion ohne Umleitung ausführen
Was ich habe, ist die folgende: ich eine _playlistPopupMenu Teilansicht, die die Liste der Wiedergabelisten macht wie folgt:
_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>
}
}
Die PlaylistController AddSong Aktion ist wie folgt:
public PartialViewResult AddSong(int? playlistId, int? songId)
{
if (ModelState.IsValid)
{
db.AddSongToPlaylist(playlistId, songId);
db.SaveChanges();
return PartialView("_AddToPlaylist", "");
}
return PartialView("_AddToPlaylist", "");
}
Ich kämpfe mit was in der Teilansicht _AddToPlaylist setzen, die ich denke, ich muss in der Lage sein zu disp Legen Sie eine Benachrichtigung an (eventuell mit PNotify add in für Bootstrap). MVC will immer ../Playlist/AddSong?playlistId=1 umleiten & songID = 1
Alle Ideen, wie dieser letzten Teil des Problems wären toll zu vervollständigen.
Es Umleitung nicht (HTTP 3xx), es ist eine Teilansicht zurückzukehren. Sie sollten in Betracht ziehen, AJAX-Anforderungen über JavaScript zu verwenden, um die Anforderung asynchron zu machen, die Antwort zu verarbeiten und auf der aktuellen Seite die benötigten Elemente darzustellen. –
Wie oben erwähnt, müssen Sie bestimmte Teile Ihrer Seite dynamisch darstellen (mit AJAX-Anfragen). Siehe http://stackoverflow.com/questions/11134701/jquery-load-part-of-external-html für eine Idee. –