0

私は現在 ASP.NET MVC 4 で作業しており、ここで何か特別なことをしようとしています。

ドロップダウンリスト用に現在持っているコードは次のとおりです。

@Html.DropDownListFor(m => m.SourceList, new SelectList(Model.SourceList, "Id", "Name", new { id = "SourceList" }))

これでうまくいきましたが、私がここでやっていることはかなりばかげています。バックエンドで再度クエリを実行して、選択した ID からモデル全体を取得します。

必要なのは、選択したモデルの ID ではなく、モデル全体です。これを行う方法はありますか?

私の現在の JQuery コールバック:

$.ajax({
            url: '@Url.Action("SetLicensesAfterSourceChange", "Permission")',
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json;',
            data: JSON.stringify({ "Id" : selectedStartSourceId, "sourceList" : jsonSourceList }),
            success: function (result) {
                //Do stuff here
            }
        });

私ができるようにしたいこと:

$.ajax({
            url: '@Url.Action("SetLicensesAfterSourceChange", "Permission")',
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json;',
            data: "selectedModel" = modelFromDropDownList,
            success: function (result) {
                //Do stuff here
            }
        });
4

1 に答える 1

0

少し大げさかもしれませんが、ソース オブジェクトのリスト全体の Javascript 配列表現を作成し、jQuery と単純な html 選択 (オプションの ID と名前) を使用して、配列から項目を取得することができます。

<script>
var items = [ 
{ 
   name = "een",
   value = "1",
   propertyX = "hallo"
},
{ 
   name = "twee",
   value = "2",
   propertyX = "wereld"
}
];

$("#ddlselect").change(function(e) { 
  e.preventDefault();

  var selectedOptionVal = $(this).val();

  var found = null;
  foreach (item in items)
  {
     if (!found && item.value == selectedOptionVal)
        found = item;
  }

  // use found if set
  if (found)
  {
  }
});

</script>

<select id="ddlselect">
  <option value="">-- kies --</option>
  <option value="1">een</option>
  <option value="2">twee</option>
</select>
于 2012-10-31T10:54:03.213 に答える