2016-12-02 12 views
-1

MVCアプリケーションで状態ドロップダウンが発生し、ドロップダウンに入力するヘルパーメソッドが呼び出されました。同じ値を複数回選択すると、正しい状態ではなく、デフォルト値「Select State」にリセットされます。MVC Html.DropDownList同じ値を選択したときにバインドされません

HTMLビュー

<div> 
    @Html.LabelFor(m => m.Pat.StateId) 
    @Html.DropDownListFor(m => m.Pat.StateId, listHelper.GetState(Model.Pat.StateId)) 
    @Html.ValidationMessageFor(m => m.Pat.StateId) 
</div> 

ヘルパーコード

 public static IList<SelectListItem> GetStateOptions(int? selectedId = null) 
     { 
      var lookupService = DependencyResolver.Current.GetService<IConstantsHelper>(); 
      var result = lookupService.GetAll<State>().Select(x => new SelectListItem 
      { 
       Value = x.Id.ToString(), 
       Text = x.Text, 
       Selected = selectedId.HasValue && selectedId == x.Id 
      }).OrderBy(x => x.Text).ToList(); 
      result.Insert(0, new SelectListItem { Value = "", Text = "Select state...", Disabled = true, Selected = result.Any(x => !x.Selected)}); 
      return result; 
     } 
+0

それが動作ダウンあなたが再びドロップダウンを開いて、同じ項目を選択し、ドロップから選択し、それがnullにリセットされますか?もっと説明できますか... – Emad

+0

**同じ値が複数回、ドロップダウンがリセットされています**あなたは詳細を教えてください。 – Shyju

+0

'@(Model.Pat.StateId)'をどこかに置くと、期待通りの値が表示されますか? –

答えて

1

私はそれがtrueを返しますので、あなたのリスト内の非選択のオプションが存在しますので、問題は、あなたの.Any状態にあると思います。

は、それを変更してみてください:

result.Insert(0, new SelectListItem { Value = "", Text = "Select state...", Disabled = true, Selected = !result.Any(x => x.Selected)}); 
関連する問題