Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Asp.net mvc 引导Multiselect在HttpPost上获取选定值_Asp.net Mvc_Twitter Bootstrap_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 引导Multiselect在HttpPost上获取选定值

Asp.net mvc 引导Multiselect在HttpPost上获取选定值,asp.net-mvc,twitter-bootstrap,asp.net-mvc-4,Asp.net Mvc,Twitter Bootstrap,Asp.net Mvc 4,我正在使用它,我的问题是我无法在ASP.NETMVC上的HttpPost上获取所选的值 遇到的问题: 单击“保存”后,屏幕上仅显示第一个选定值 模型。(已解决) 单击“保存”后,屏幕上仅显示第一个选定值 下拉列表 Sample.chtml: @model SampleProject.Models.SampleViewModel @using (Html.BeginForm()) { @Html.DropDownListFor(model => model.Selected,

我正在使用它,我的问题是我无法在ASP.NETMVC上的HttpPost上获取所选的值

遇到的问题:

  • 单击“保存”后,屏幕上仅显示第一个选定值 模型。(已解决

  • 单击“保存”后,屏幕上仅显示第一个选定值 下拉列表

Sample.chtml:

@model SampleProject.Models.SampleViewModel

@using (Html.BeginForm())
{
    @Html.DropDownListFor(model => model.Selected, new SelectList(Model.List, "value", "text"), new { @class = "multiselect form-control", multiple = "multiple" })
    <input type="submit" value="Save" />
}
控制器:

public class DashboardController : Controller
{
    public ActionResult Sample()
    {
        SampleViewModel model = new SampleViewModel();
        model.List = new SelectList(new List<string>() { "1", "2", "3" });

        return View(model);
    }

    [HttpPost]
    public ActionResult Sample(SampleViewModel model)
    {
        model.List = new SelectList(new List<string>() { "1", "2", "3" });

        return View(model);
    }
}
公共类仪表板控制器:控制器
{
公共行动结果样本()
{
SampleViewModel模型=新的SampleViewModel();
model.List=newselectlist(newlist(){“1”、“2”、“3”});
返回视图(模型);
}
[HttpPost]
公共行动结果示例(SampleViewModel模型)
{
model.List=newselectlist(newlist(){“1”、“2”、“3”});
返回视图(模型);
}
}
选择:

我无法在HttpPost上正确获取所选值

代码隐藏/HttpPost:(错误)

HttpPost之后:(正确)

A
发回一个值数组(不是单个值)。例如,您选择的属性
必须是
IEnumerable

public string[] Selected { get; set; }
旁注:由于文本和值属性相同,您可以通过设置
列表
属性
选择列表

public SelectList List { get; set; }
然后在控制器中

model.List = new SelectList(new List<string>() { "1", "2", "3" })
model.List=new SelectList(new List(){“1”、“2”、“3”})

(虽然不清楚您为什么不使用
int

在任何地方都看不到这个答案,因此要解决回邮后只选择1项的问题,您需要使用:

@Html.ListBoxFor(.. 
instead of @Html.DropDownListFor

先生,单击“保存”后,我遇到了另一个问题。单击“保存”后,如果在下拉列表上显示为“已选定”,则只有第一个选定的值而不是多个项目。(请参阅上面的第3张图片)。您在返回视图时没有重新分配
选择列表。
。先生,我已经完成了,但它仍然只返回一个选定的项目。(参考上面的代码。)什么是
string[]Selecteds=model.Selected用于?(在何处使用值
Selecteds
)。您是否已将属性
Selected
更改为typeof
string[]
?您还应该删除引导插件,并使用默认的HTMLSelect元素对其进行测试
@Html.ListBoxFor(.. 
instead of @Html.DropDownListFor