2017-04-05 34 views
-1

私は@ Html.DropDownListを持っています。これは、編集モードでコントローラからデータを受け取ります。 DropDown要素を非表示にして、listがnullまたは空の場合はメッセージを表示する必要があります。ViewBagがnullまたは空の場合、@ Html.DropDownListを非表示にする方法

私はビューでこのコードを試すが、すべての時間が私に結果thetを与えるには、持っている、と空のドロップダウンを示しています

@if(ViewBag.DatumRID != null) 
       { 
        <div class="col-md-10"> 
         @Html.DropDownList("DatumRID", null, htmlAttributes: new { @class = "form-control" }) 
         @Html.ValidationMessageFor(model => model.DatumRID, "", new { @class = "text-danger" }) 
        </div> 
       } 
       else 
       { 
        <h6 style="color:#ff0000"> NO RECORDS.</h6> 
       } 

そして、コントローラからのコードはここにある:

ViewBag.DatumRID = new SelectList(db.tbl_relacii.Where(x => x.DatumR == tbl_rezervacii.DatumP).OrderBy(x => x.DatumR), "relID", "DatumForDisplay", tbl_rezervacii.DatumRID); 

記録fountのドロップダウンは正常ですが、レコードがnullの場合はドロップダウンが空です。

+0

ModelBase.DatumRIDの代わりにModel:Model.DatumRIDモデルのリストを設定してください –

+0

あなたのコントローラのコードは 'SelectList'を作成しています。' null'でも空でもかまいません。 - 'var data = db.tbl_relacii.Where(....); if(data.Any()){ViewBag.DatumRID = new SelectList(...); } ' –

+0

ありがとう@Stephen Mueckeそれは仕事です。 –

答えて

0

リストのサイズも確認してください。データを正しく表示するには、SelectListに0個以上の項目が含まれている必要があります。これを試してみてください:

@if(ViewBag.DatumRID != null && ViewBag.DatumRID.Count > 0) 
{ 
     <div class="col-md-10"> 
      @Html.DropDownList("DatumRID", null, htmlAttributes: new { @class = "form-control" }) 
      @Html.ValidationMessageFor(model => model.DatumRID, "", new { @class = "text-danger" }) 
     </div> 
} 
else 
{ 
     <h6 style="color:#ff0000"> NO RECORDS.</h6> 
} 

更新:

List<SelectListItem> viewList = new List<SelectListItem>(); 
    viewList.AddRange(new SelectList(db.tbl_relacii.Where(x => x.DatumR == tbl_rezervacii.DatumP).OrderBy(x => x.DatumR), "relID", "DatumForDisplay", tbl_rezervacii.DatumRID)); 
    ViewBag.DatumRID = viewList; 

そして剃刀のマークアップでのDropDownListヘルパーに "viewList" オブジェクトを渡す: Uは、このようなあなたのコントローラのコードを更新してみてください。

+0

このエラーがあります。** 'System.Web.Mvc.SelectList'に 'Count'の定義が含まれていません** line: '@if(ViewBag.DatumRID!= null && ViewBag.DatumRID.Count> 0)' –

関連する問題