我想将下拉菜单的默认值设置为“有效”,而不是“无效”。
我尝试将“ Selected = true”设置为活动状态,但我的dropdwon始终显示已选择“ Incative”
<div class="form-group input-group-lg">
<label>Status</label><br />
@Html.DropDownList("Status", new List<SelectListItem> { new SelectListItem { Text="Active", Value = "True",Selected=true }, new SelectListItem { Text="Inactive", Value = "False"} }, "Select The Status..")
<br />
@Html.ValidationMessageFor(model => model.Status, "", new { @class = "text-danger" })
</div>
答案 0 :(得分:0)
此代码看起来不错,当我尝试使用此代码时,我将Active作为默认选定值。
答案 1 :(得分:0)
使用第三个参数作为默认值。
@Html.DropDownList("Status", new List<SelectListItem> { new SelectListItem { Text="Active", Value = "True",Selected=true }, Model.SomeDefaultValue, "Select The Status..")
创建ViewModel并将所有数据包含到该viewModel并以这种方式呈现的好方法。
@Html.DropDownList("Status", Model.ListOfSomeThing, Model.SomeDefaultValue, "Select The Status..")
(这样会更清洁。)
希望对您有帮助!
示例:
ViewModel
public class SimpleViewModel{
public List<SelectListItem> Status_List {get; set}
public string Default_Status {get; set}
public SimpleViewModel(){
CustomerList = new List<SelectListItem>();
Default_Status= "Active"; //default value.
}
操作方法
public ActionResult Index()
{
SimpleViewModel viewModel = new SimpleViewModel();
viewModel.Status_List = // Initialize it here.
viewModel.Default_Status = // If you want to Change you Default_Status.
return view(viewModel);
}
查看
@Html.DropDownList("Customer", Model.CustomerList, Model.Customer)
答案 2 :(得分:0)
我通常在控制器中执行此操作
private void SetSelectListItem(string currency = null)
{
ViewBag.Currencies = _currencyService.GetAllCurrencies().Select(x =>
new SelectListItem
{
Value = x.Id.ToString(),
Text = x.Name,
Selected = x.Id.ToString() == currency
}).ToList();
}
在我看来,请使用 DropDownListFor
@Html.DropDownListFor(m => m.Currency, ViewBag.Currencies, new { @class = "form-control", style = "width:100%" })