asp.net-mvc – ASP.NET MVC – 执行控制器操作而不重定向
我试图在控制器上执行操作,而不重定向到该操作的关联视图.有关我想要实现的一个很好的例子,请查看music.xbox.com网站.从弹出菜单向选定的播放列表添加歌曲时 – 该页面只显示没有任何重定向或刷新的通知.这怎么可能?
我所拥有的是以下内容: _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局部视图中的内容,我认为我需要能够显示某种类型的通知(Possiblly使用PNotify添加为Bootstrap). MVC希望始终重定向到../Playlist/AddSong?playlistId=1u0026amp;songId=1 关于如何完成问题的最后部分的任何想法都会很棒. 解决方法
如果您不想要“完整页面重新加载”,那么您需要稍微改变问题,使用javascript动态更改页面.像
JQuery这样的库可能会让
DOM更容易操作.
>使用javascript动态显示弹出窗口. 最困难的部分是asynchronous post.有关更新div而不重新加载整个页面的帮助可以在this question找到. 编辑 – 示例 如果您使用URL myapp.com/PlayList/AddSong/进行控制器操作(接受POSTs),那么您需要设置JQuery以发布到此URL.您还可以使用您要发布的任何表单数据设置data属性,在您将dataistId和songId添加到data属性的情况下. 然后,您将使用AJAX查询(HTML)的结果并将其附加到页面上的现有播放列表HTML.因此,假设您要将部分视图的HTML附加到具有ID播放列表Div的div,并假设您的部分视图返回HTML,该HTML在附加到现有播放列表时有效,那么您的javascript将如下所示: var data = { playlistId = 1,songId = 1 }; $.ajax({ type: "POST",url: 'http://myapp.com/PlayList/AddSong/',data: data,success: function(resultData) { // take the result data and update the div $("#playlistDiv").append(resultData.html) },dataType: dataType }); 免责声明:我无法保证此代码可以100%正常工作(除非我自己编写程序).您使用的JQuery版本可能存在差异等,但稍微调整它应该可以达到预期的效果. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何进入MVC4源代码,而无需构建程序集
- asp.net – 如何使用MVC属性验证列表是否具有大于零的非nul
- asp.net-mvc-4 – 与TinyMCE绑定的MVC4
- asp.net – 访问在DelegatingHandler中执行的当前控制器
- asp.net – 它是否有助于使用NGEN?
- asp.net – 在MVC中使用iTextSharp在MVC Razor中将HTML转换
- 预编译asp.net网站
- 如何指导获取一个经典的asp应用程序在IIS 7.0下工作
- asp.net – 如何将HTML片段(作为委托?)传递给声明性Razor
- asp.net-web-api – 在ODataConventionModelBuilder中设置数