2016-11-15 14 views
0

コントローラからデータソースを取得するDropDownListForがあります。同じページに新しい値を追加したいので、それを更新する方法はありますか?DropDownListコントローラのデータソースを更新する

ビュー:

@Html.DropDownListFor(m => m.Id, MyController.GetIds(Model.Id).Select(g => new SelectListItem { Text = g.Text, Value = g.Value }), @Resource.System_Choose, new 
        { 
         @class = "form-control selectpicker", 
         data_live_search = "true" 
        }) 

コントローラー:

public static List<SelectListItem> GetIds(int Id) 
    { 
     var retVal = new List<SelectListItem>(); 

     return retVal; 
    } 

答えて

0

はタイプList<SelectListItem>()の性質を持っているモデルを使用してビューの契約を作成し、バインドさとドロップダウンに表示する準備ができて、このプロパティを返します。

0

はJavaScriptのみ

  1. 使用してオプションを選択するために、新たな価値を付加するために、目標を達成するためにいくつかの方法があります。 (新しい値がバックエンドに送信されない場合)
  2. Ajaxと新しいリストを取得します。

ケース2のサンプルでは、​​DropDownListをpartialviewに配置し、ajaxを使用してpartialviewに最新のDropDownListを取得できます。

コントローラー:

public ActionResult QueryNewList() 
{ 
    return PartialView("~/Views/Home/_urPartialView.cshtml", viewModel); 
} 

HTML:

<div id="myDiv"></div> 

のJs:

$.ajax({ 
     dataType: "html", 
     url: "QueryNewList", 
     success: function (html) { 
      $("#myDiv").html(""); 
      $("#myDiv").append(html); 
     } 
    }) 
関連する問題