C# 如何在asp.net中选择多个列表框
我已经用C# 如何在asp.net中选择多个列表框,c#,asp.net,asp.net-mvc,listbox,C#,Asp.net,Asp.net Mvc,Listbox,我已经用asp.net razor创建了一个列表框。但我希望能够多选择列表框。我该怎么做 我想用这样的东西: [HttpPost] public ActionResult KenmerkSelectie(List<string> VarFromKenmerk1) { } [HttpPost] 公共行动结果KenmerkSelectie(列表VarFromKenmerk1) { } 以下列表框仅发布一个变量: @using (Html.BeginForm("KenmerkSele
asp.net razor
创建了一个列表框。但我希望能够多选择列表框。我该怎么做
我想用这样的东西:
[HttpPost]
public ActionResult KenmerkSelectie(List<string> VarFromKenmerk1)
{
}
[HttpPost]
公共行动结果KenmerkSelectie(列表VarFromKenmerk1)
{
}
以下列表框仅发布一个变量:
@using (Html.BeginForm("KenmerkSelectie", "KenmerkSelectie", FormMethod.Post, new { id = "kenmerk1" }))
{
@Html.ListBox("VarFromKenmerk1", (SelectList)ViewBag.var)
<input type="submit" value="submit"/>
}
@使用(Html.BeginForm(“KenmerkSelectie”,“KenmerkSelectie”,FormMethod.Post,new{id=“kenmerk1”}))
{
@列表框(“VarFromKenmerk1”,(SelectList)ViewBag.var)
}
编辑:
我正在尝试以下代码,但出现错误:
@using (Html.BeginForm("KenmerkSelectie", "KenmerkSelectie", FormMethod.Post, new { id = "kenmerk1" }))
{
@Html.ListBoxFor("VarFromKenmerkTEST",(MultiSelectList)ViewBag.var), new {@style = "width: 252px; height: 300px;"})
<input type="submit" value="submit"/>
}
public ActionResult index()
{
ViewBag.VarFromKenmerk1 = new List<SelectListItem>();
ViewBag.VarFromKenmerk1.Add(new SelectListItem
{
Value = "House",
Text = "House"
});
ViewBag.VarFromKenmerkTEST = new MultiSelectList(ViewBag.VarFromKenmerk1);
return View();
}
[HttpPost]
public ActionResult KenmerkSelectie(List<string> VarFromKenmerkTEST){
foreach(var ken in VarFromKenmerkTEST){
//selected items
}
}
@使用(Html.BeginForm(“KenmerkSelectie”,“KenmerkSelectie”,FormMethod.Post,new{id=“kenmerk1”}))
{
@Html.ListBoxFor(“VarFromKenmerkTEST”,(MultiSelectList)ViewBag.var),新的{@style=“宽度:252px;高度:300px;”})
}
公共行动结果索引()
{
ViewBag.VarFromKenmerk1=新列表();
ViewBag.VarFromKenmerk1.Add(新建SelectListItem
{
Value=“房子”,
Text=“房子”
});
ViewBag.VarFromKenmerkTEST=新的多选列表(ViewBag.VarFromKenmerk1);
返回视图();
}
[HttpPost]
公共行动结果KenmerkSelectie(列表VarFromKenmerkTEST){
foreach(VarFromKenmerkTEST中的var ken){
//选定项目
}
}
编译器错误消息:CS0411:方法的类型参数
'System.Web.Mvc.Html.SelectExtensions.ListBoxFor(System.Web.Mvc.HtmlHelper,
System.Linq.Expressions.Expression>,,
System.Collections.Generic.IEnumerable)'
无法从用法推断。尝试指定类型参数
明确地说
源错误:
@ListBoxFor(“VarFromKenmerkTEST”,(MultiSelectList)ViewBag.var),
新的{@style=“宽度:252px;高度:300px;”})
我不知道KenmerkSelectie中的参数是否正确。您需要设置SelectList类的Selected属性,并添加属性new{Multiple=“Multiple”}
@{
var VarFromKenmerk1=新列表{
新选择列表{Text=“Text1”,Value=“Value1”,Selected=true},
新建选择列表{Text=“Text2”,Value=“Value2”},
新建选择列表{Text=“Text3”,Value=“Value3”,Selected=true}
};
}
@ListBox(“VarFromKenmerk1”,VarFromKenmerk1,new{Multiple=“Multiple”})
您应该使用viewModel将数据传递到视图(强类型),然后使用创建列表框
@Html.ListBoxFor(viewmodel => viewmodel.model.property, viewmodel.data )
viewmodel的数据属性应为
视图模型:
public class viewModel
{
public MultiSelectList data { get; set; }
public Model model { get; set; }
}
“只发布一个变量”是什么意思?它将发回一个值数组,该数组将在发回时绑定到您的参数(如果选择3个选项,则
VarFromKenmerk1
将包含3个值)@Html.ListBox()
和@Html.ListBoxFor()
帮助程序会添加multiple=“multiple”
attribute我不想使用模型。。。使用ListBox不可能吗?您可以在Viewbag中放置一个multiSelectList查看此链接,在使用Viewbag时,您不能使用Html.Listboxfor
public class viewModel
{
public MultiSelectList data { get; set; }
public Model model { get; set; }
}