我需要使用带有 name 和 id 的 JavaScript 格式在 mvc 中绑定 @html.dropdownlist 。我尝试但没有在 JavaScript 端绑定它没有在客户端传递值。我的列表值格式图像如下所示。如何通过 name 和 id 而不是序列号传递值。
问问题
752 次
2 回答
1
在您的 ajax 请求中将类型更改为 GET,例如
$.ajax({
type: 'GET',
...
并尝试
$.each(data, function (index, val) {
$('<option/>',{value:val.Id,text:val.Text}).appendTo("#MyDdl");
});
于 2013-03-08T06:15:42.167 回答
0
您正在向客户端发送一个 SelectList。此类实现并且IEnumerable<SelectListItem>
SelectListItem 具有 2 个属性:您应该将下拉列表绑定到:Value
Text
$.ajax({
type: 'POST',
url: url,
data: { id : id },
success: function (data) {
$('#MyDdl').empty();
$.each(data, function () {
$('#MyDdl').append(
$('<option/>', {
value: this.Value,
html: this.Text
})
);
});
}
});
在您使用的示例中,val.Id
但没有这样的属性。
但事实上,您不需要任何 SelectList。只需返回学生集合:
[HttpPost]
public ActionResult Some(string id)
{
var students = service.GetAllStudents().ToList();
students.Insert(0, new StudentModel{ Id = 0, Name = "Select student" });
return Json(students);
}
现在您可以将下拉列表绑定到此集合的Id
和Name
属性:
$.each(data, function () {
$('#MyDdl').append(
$('<option/>', {
value: this.Id,
html: this.Name
})
);
});
于 2013-03-08T06:55:58.167 回答