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