0

これは私のドロップダウンリストです:

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

デフォルト値をどこに入れるかわかりませんか?私のデフォルト値は「ThisMonthToDate」です

助言がありますか?

4

1 に答える 1

0

モデルがビューにバインドされている場合は、使用を避けViewBag、代わりにPropertyモデル/ビューモデルに追加して、選択リスト項目を保持することを強くお勧めします。したがって、モデル/ビューモデルは次のようになります

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

次に、GET アクション メソッドで値を設定できます。このように、1 つの選択オプションをデフォルトの選択オプションとして設定する場合は、

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 のオプションをselected1 つとして HTML 選択が含まれます。

于 2012-06-26T15:36:55.783 に答える