Вопрос по c#, html, razor – Как поместить значение по умолчанию в DropDownListFor?

0

это мой выпадающий список:

@Html.DropDownListFor(m => m.ReportType, new SelectList(ViewBag.DateRange as List<SelectListItem>, "Value", "Text"), new { @class = "w150" })

Я не могу понять, куда поместить значение по умолчанию? Мое значение по умолчанию будет 'ThisMonthToDate'

Какие-либо предложения

Ваш Ответ

1   ответ
0

я настоятельно рекомендую вам не использоватьViewBag и вместо этого добавьтеProperty вашей модели / ViewModel для хранения элементов списка выбора. Таким образом, ваша Model / ViewModel будет выглядеть та

public class Report
{
   //Other Existing properties also
   public IEnumerable<SelectListItem> ReportTypes{ get; set; }
   public string SelectedReportType { get; set; }
}

Затем в методе GET Action вы можете установить значение, если вы хотите установить один вариант выбора в качестве выбранного по умолчанию, например

public ActionResult EditReport()
{
  var report=new Report();
  //The below code is hardcoded for demo. you mat replace with DB data.
  report.ReportTypes= new[]
  {
    new SelectListItem { Value = "1", Text = "Type1" },
    new SelectListItem { Value = "2", Text = "Type2" },
    new SelectListItem { Value = "3", Text = "Type3" }
  };      
  //Now let's set the default one's value
  objProduct.SelectedReportType= "2";  

  return View(report);    
}

и в вашем строго типизированном представлении,

@Html.DropDownListFor(x => x.SelectedReportType, 
     new SelectList(Model.ReportTypes, "Value", "Text"), "Select Type..")

В HTML-разметке, сгенерированной указанным выше кодом, будет выбран HTML с параметром со значением 2 какselected один

Похожие вопросы