我有几个下拉列表...第一个有一个调用Javascript函数的onchange事件:
@for (int i = 0; i < Model.things.Count; i++)
{
<tr>
<td>
@Html.DropDownListFor(m => m.Category[i].ID, ViewBag.Category as SelectList, "Please select a Category", new { @class = "class1", onchange = "Changed(this)" })
</td>
<td>
@Html.DropDownListFor(m => m.SubCategory[i].ID, Enumerable.Empty<SelectListItem>(), "Please select a Sub Category", new { @class = "class2" })
</td>
</tr>
}
在这个函数中,我正在对一个返回SelectList的控制器方法进行ajax调用:
function TrackerChanged(val) {
var id = val.value;
$j.ajax({
url: appRoot + 'Controller/Method',
type: 'post',
data: { 'id': id},
success: function (results) {
if (results) {
**** POPULATE SECOND DROPDOWN ABOVE ***
}
else {
alert("Error updating comment");
}
},
failure: function () {
alert("Error updating comment");
}
});
}
Controller方法返回一个SelectList:
public SelectList Method(id categoryID)
{
IEnumerable<SelectListItem> select = null;
// Populate the IEnumerable with SubCategory results to show in the second Drop Down
return new SelectList(select, "Value", "Text");
}
但是你可能会注意到我的ajax成功块中的注释 - 我不知道如何将我的新结果绑定回控制器。
请有人帮忙。我找了一些例子,似乎没有什么对我有用。