C# 选择控制器中的下拉项
你好 在我看来,我有这样一个下拉列表:C# 选择控制器中的下拉项,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,你好 在我看来,我有这样一个下拉列表: <div class="form-group row"> @Html.LabelFor(model => model.Colour, new { @class = "col-lg-2 col-md-2 col-sm-2 col-xs-2" }) <div class="col-lg-9 col-md-9 col-sm-9 col-xs-9"> @Html.DropDownListFor(mode
<div class="form-group row">
@Html.LabelFor(model => model.Colour, new { @class = "col-lg-2 col-md-2 col-sm-2 col-xs-2" })
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-9">
@Html.DropDownListFor(model => model.Colour, new SelectList(Model.VehicleColour, "Value", "Text", Model.Colour), new { id = "Colour", @class = "btn dropdown-toggle btn-default" })
</div>
</div>
汽车颜色
车辆模型
你能帮我解决这个问题吗?你可以这样试试
在控制器中你应该写
List<VehicleColour> lstColour = null;
lstColour = GetVehicleColour();
ViewBag.lstColour = new SelectList(lstColour , "Colour", "Colour", selected Colour);
当绑定到模型属性时,设置SelectListItem的Selected属性没有意义,DropDownListFor方法会在内部生成一个新的IEnumerable。颜色值决定选择的内容-如果它与选项值之一匹配,则将选择该选项。不要在选择列表中添加“请选择车辆颜色”选项-使用接受标签选项的其中一个重载,并且没有必要从第一个选项生成第二个相同的选择列表。视图应为@Html.DropDownListForm=>m.color,Model.VehicleColour,请选择车辆颜色,新建{@class=btn下拉切换btn default}我已删除选定的属性,但它仍然没有选择选定的值,这意味着您的设置的值与用于生成选项的method.Id值之一不匹配。model.Color与方法匹配。id@StephenMuecke这很好用。我在我的许多项目中都使用了这个。所以请不要在没有确认的情况下判断任何人的代码。很明显,谁投了票,谁也得到了答案,这就是为什么他/她投了票。如果你有答案,请写在这里。不要评论任何人的答案。它甚至不会编译,更不用说工作了!这与问题无关。广告建议使用DropDownList而不是像OP所做的那个样使用强类型的DropDownListFor方法是很糟糕的。
private IEnumerable<SelectListItem> GetVehicleColour()
{
var colours = new List<SelectListItem>();
var colour = new SelectListItem()
{
Value = "0",
Text = "Please select a Vehicle Colour",
Selected = true
};
/* Get Colour values fron database */
foreach (ColorObject method in dbList)
{
colour = new SelectListItem()
{
Value = method.Id.ToString(),
Text = method.Description,
Selected = false
};
colours.Add(colour);
}
return colours;
}
[Required]
[Display(Name = "Colour ")]
[Range(1, long.MaxValue, ErrorMessage = "Please select a Vehicle Colour")]
public long? Colour { get; set; }
public IEnumerable<SelectListItem> VehicleColour { get; set; }
List<VehicleColour> lstColour = null;
lstColour = GetVehicleColour();
ViewBag.lstColour = new SelectList(lstColour , "Colour", "Colour", selected Colour);
@Html.DropDownList("lstColour", null, new { id = "Colour", @class = "btn dropdown-toggle btn-default" })