可以选择值列表项的下拉列表?

时间:2012-10-31 10:27:44

标签: asp.net-mvc

我目前正在使用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
            }
        });

1 个答案:

答案 0 :(得分:0)

这可能有点牵强,但您可以创建整个源对象列表的Javascript数组表示,并使用jQuery和一个简单的html选择(具有选项的id和amp;名称)来检索项目来自阵列。

<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>