如何在同一视图中将项目从一个列表框移动到另一个列表框,而无需重新加载整个页面,而只需更新 ASP MVC 4 中的两个列表框?
这是为了有一些选定的音乐流派,然后能够通过提交按钮将这些音乐流派提交到网络服务。
流派有一个不应该显示的 id 和一个应该显示的名称。
在过去的 4 个小时里,我一直试图弄清楚,但我似乎根本无法得到任何工作。
编辑:解决移动项目
我解决了使用 jQuery 移动项目的问题。我添加了对jquery.unobtrusive-ajax.js的引用并向视图添加了一些方法。最终视图如下所示:
SelectGenre.cshtml
@model SelectGenreModel
<div id="genreDiv">
@Html.ListBoxFor(model => model.AvailableGenres, new MultiSelectList(Model.AvailableGenres, "Id", "Name"), new { size = "10" })
<input id="btnAddAll" type="button" value=" >> " onclick="addallItems();" />
<input id="btnAdd" type="button" value=" > " onclick="addItem();" />
<input id="btnRemove" type="button" value=" < " onclick="removeItem();" />
<input id="btnRemoveAll"type="button" value=" << " onclick="removeallItems();" />
@Html.ListBoxFor(model => model.ChosenGenres, new MultiSelectList(Model.ChosenGenres, "Id", "Name"), new { size = "10" })
</div>
<script type="text/javascript">
function addItem() {
$("#AvailableGenres option:selected").appendTo("#ChosenGenres");
$("#ChosenGenres option").attr("selected", false);
}
function addallItems() {
$("#AvailableGenres option").appendTo("#ChosenGenres");
$("#ChosenGenres option").attr("selected", false);
}
function removeItem() {
$("#ChosenGenres option:selected").appendTo("#AvailableGenres");
$("#AvailableGenres option").attr("selected", false);
}
function removeallItems() {
$("#ChosenGenres option").appendTo("#AvailableGenres");
$("#AvailableGenres option").attr("selected", false);
}
</script>
编辑:在新问题中继续
我在这个问题中询问了更多信息和更具体的信息 Get items from listbox in controller MVC ASP 4