0

这是我的下拉列表:

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

我无法弄清楚将默认值放在哪里?我的默认值是“ThisMonthToDate”

有什么建议么?

4

1 回答 1

0

如果您有一个绑定到视图的模型,我强烈建议您避免使用ViewBag,而是将 a 添加Property到您的模型/视图模型中以保存选择列表项。所以你的模型/视图模型看起来像这样

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

然后在您的 GET Action 方法中,您可以设置 value ,如果您想将一个选择选项设置为默认选择的选项,如下所示

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 标记将选择带有值为 2 的选项的 HTML 选项selected

于 2012-06-26T15:36:55.783 回答