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