@ Html.DropDownList如何将默认值设置为ACTIVE

时间:2019-04-01 07:25:31

标签: c# model-view-controller

我想将下拉菜单的默认值设置为“有效”,而不是“无效”。

我尝试将“ 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>

3 个答案:

答案 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%" })