我在mvc 4中創建了一個雙重列表。在post方法中,我無法獲取模型數據。 我可以將一個項目從一個列表拖放到另一個列表中,並在提交時需要我的發佈方法中的數據。但在model.SelectedColumns我得到null.What我做錯了什麼?asp.net中的雙重列表mvc 4
這裏是我的代碼 -
型號:
public class Columns
{
public List<string> SelectedColumns { set; get; }
public List<string> RemainingColumns { set; get; }
}
觀點:
@Html.BeginForm("AddRemoveColumns", "DashBoard",FormMethod.Post){
<div style="float: left">
<h2>
AddRemoveColumns</h2>
<ol id="SelectedColumns" class="connectedSortable">
@foreach (var item in Model.SelectedColumns)
{
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>@item
</li>
}
</ol>
</div>
<div style="float: right">
<ol id="RemainingColumns" class="connectedSortable">
@foreach (var item in Model.RemainingColumns)
{
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>@item
</li>
}
</ol>
</div>
<input type="submit" value="Submit" />
}
腳本:
<script type="text/javascript">
$(function() { $("#SelectedColumns, #RemainingColumns").sortable({
connectWith: ".connectedSortable" }).disableSelection();
});
</script>
控制器:
public ActionResult AddRemoveColumns()
{
Columns columns = DbAccess.getSelectedColumns();
return View(columns);
}
[HttpPost]
public ActionResult AddRemoveColumns(Columns model)
{
Columns columns = new Columns();
columns.SelectedColumns = model.SelectedColumns;
return View();
}
我不想使用@ Html.ListBoxFor becoz即時通訊使用jQuery排序。那麼有什麼辦法讓我的控制器中的列表的修改數據?...感謝您的回覆 – Himanshu
只需將$ .ajax用於傳遞列表到控制器,或者如果有任何想要使用表單發佈然後維護2隱藏@ Html.ListBoxFor列表&綁定與模型&修改它們的值使用jQuery改變你的實際列表(jQuery排序列表) – Muntajib