Asp.net mvc @使用和创建问题的Html.listbox
我有一个网页,有两个列表框list1,list2,我可以将项目从一个列表框移到另一个列表框,然后再移回来。当我单击submit按钮时,我想将list2中的所有items值返回给httppost方法 我有三个问题: 如何确定所选列表的属性? 如何为列表2创建初始空列表?列表1是否已填充项? 单击“提交”按钮时,如何将所有列表2项返回到模型? 型号:Asp.net mvc @使用和创建问题的Html.listbox,asp.net-mvc,razor,html.listboxfor,Asp.net Mvc,Razor,Html.listboxfor,我有一个网页,有两个列表框list1,list2,我可以将项目从一个列表框移到另一个列表框,然后再移回来。当我单击submit按钮时,我想将list2中的所有items值返回给httppost方法 我有三个问题: 如何确定所选列表的属性? 如何为列表2创建初始空列表?列表1是否已填充项? 单击“提交”按钮时,如何将所有列表2项返回到模型? 型号: public class TestModel { public List<SelectListItem> OptionList {
public class TestModel
{
public List<SelectListItem> OptionList { get; set; }
public List<SelectListItem> SelectedOptionList { get; set; }
public string[] SelectedOptions { get; set; }
}
控制器:
private TestModel testModel = new TestModel();
public ActionResult TestPage()
{
ViewBag.Message = "Test Page";
testModel.OptionList = new List<SelectListItem>();
for (int i = 1; i <= 100; i++)
{
SelectListItem item = new SelectListItem();
item.Text = "Option " + i.ToString();
item.Value = item.Text;
testModel.OptionList.Add(item);
}
return View("TestView", testModel);
}
[HttpPost]
public ActionResult TestPage(TestModel formModel)
{
testModel.SelectedOptionList = formModel.SelectedOptionList;
testModel.SelectedOptions = formModel.SelectedOptions;
//do something
return RedirectToAction("TestPage");
}
视图:
1如何确定所选列表的属性? @Html.ListBoxForx=>x.SelectedOptions,新建MultiSelectListModel.SelectedOptionList,新建{id=list2,Multiple=Multiple,Size=15,style=width:100%;} 2如何为列表2创建初始空列表?列表1已填充项。 在控制器中设置一个空列表testModel.SelectedOptionList=新列表 3如何在单击“提交”按钮时将所有列表2项返回到模型 在提交之前,可能需要使用jquery将列表2中的所有项目设置为选中。list2 items中的所有选定项将绑定到TestModel.SelectedOptions on submit
请四处看看,已经有很多答案与Html.ListBoxFor相关。例如,如何确定所选列表的属性? @Html.ListBoxForx=>x.SelectedOptions,新建MultiSelectListModel.SelectedOptionList,新建{id=list2,Multiple=Multiple,Size=15,style=width:100%;} 2如何为列表2创建初始空列表?列表1已填充项。 在控制器中设置一个空列表testModel.SelectedOptionList=新列表 3如何在单击“提交”按钮时将所有列表2项返回到模型 在提交之前,可能需要使用jquery将列表2中的所有项目设置为选中。list2 items中的所有选定项将绑定到TestModel.SelectedOptions on submit 请四处看看,已经有很多答案与Html.ListBoxFor相关。例如
@model EngineeringDataAnalysisGui.Models.TestModel
@{
ViewBag.Title = @ViewBag.Message;
}
@section Subtitle
{
@ViewBag.Message
}
<table width="100%">
@using (Html.BeginForm("TestPage", "RetrieveData", FormMethod.Post))
{
<tr>
<td>Event List:</td>
<td>@Html.ListBox("lstEventSelection", Model.OptionList, new { id = "list1", Multiple = "multiple", Size = 15, style = "width: 100%;" })</td>
</tr>
<tr>
<td></td>
<td>
<table style="text-align:center; width: 100%">
<tr>
<td id="buttonCol">
<input type="button" id="btnAddAllEvent" title="Add All Events" onclick="moveAllOptions('list1','list2', true)" />
<input type="button" id="btnAddEvent" title="Add Selected Events" onclick="moveSelectedOptions('list1','list2', true)" />
</td>
<td id="buttonCol">
<input type="button" id="btnRemoveEvent" title="Remove Selected Events" onclick="moveSelectedOptions('list2','list1', true)" />
<input type="button" id="btnRemoveAllEvent" title="Remove All Events" onclick="moveAllOptions('list2','list1', true)" />
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>Selected Event List:</td>
@*Not sure how to add the listbox*@
<td>@*Wrong*@@Html.ListBoxFor(x => x.SelectedOptions, Model.SelectedOptionList, new { id = "list2", Multiple = "multiple", Size = 15, style = "width: 100%;" })</td>
</tr>
<tr>
<td><input type="submit" value="submit" /></td>
</tr>
}
</table>