Dropdownlist以mvc格式获取所选值

时间:2015-04-18 18:07:45

标签: asp.net-mvc

我有一个错误,我的下拉列表自动重置默认值!你能帮我吗!谢谢!

在模型中,我定义:

public List <int> StatesId { get; set; }

在视图中:

A:

@Html.DropDownListFor(m => m.StatesId, new SelectList(Model.States.Where(p=>p.StateTypeId == s1), "StateId", "StateContent"), "Select")<br /><br />

B:

@Html.DropDownListFor(m => m.StatesId, new SelectList(Model.States.Where(p => p.StateTypeId == s2), "StateId", "StateContent"), "Select")<br /><br />

C:

@Html.DropDownListFor(m => m.StatesId, new SelectList(Model.States.Where(p => p.StateTypeId == s3), "StateId", "StateContent"), "Select")<br /><br />

单击提交后,显示A中的选定值,但是B,C框中的值,它将自动重置为默认值为“select”,现在,我想在峰值之后,B中的值和C框将显示我选择的值!感谢

2 个答案:

答案 0 :(得分:0)

请为每个控件创建一个不同的属性,不要对所有控件使用相同的属性。当然,您可以使用相同的数据源,但选择的内容应该不同。

最佳

丹尼尔

修改

查看:

@using System.Linq
@model StackOverflowSamples.Models.StatesViewModel

@Html.DropDownListFor(m => m.SelectedStateA, new SelectList(Model.States.Where(p => p.StateTypeId == s1), "SelectedStateA", "StateContent"), "Select")
@Html.DropDownListFor(m => m.SelectedStateB, new SelectList(Model.States.Where(p => p.StateTypeId == s2), "SelectedStateB", "StateContent"), "Select")
@Html.DropDownListFor(m => m.SelectedStateC, new SelectList(Model.States.Where(p => p.StateTypeId == s3), "SelectedStateC", "StateContent"), "Select")

型号:

public class StatesViewModel
{
    public IList<StatesModel> States { get; set; }
    public int SelectedStateA { get; set; }
    public int SelectedStateB { get; set; }
    public int SelectedStateC { get; set; }
}

答案 1 :(得分:0)

您应该使用连接到StateId的MultiSelect ListBox来选择多个状态,

否则

如果只允许三个状态,则在ViewModel中声明三个StatesIds 喜欢

StateId1 { get; set; }
StateId2 { get; set; }
StateId3 { get; set; }

并在视图中有三个下拉列表