Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net中选择多个列表框_C#_Asp.net_Asp.net Mvc_Listbox - Fatal编程技术网

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; }
}