【发布时间】:2015-06-11 11:52:28
【问题描述】:
ActionResult Create():
ViewBag.Quantity = new SelectList(new List<SelectListItem>(), "Value", "Text");
查看:
@Html.DropDownList("Quantity", null, htmlAttributes: new { @class = "form-control" })
jQuery:
var $quantity = $('#ProdQuantity');
function GetQuantity() {
$.getJSON('/Sales/GetQuantity?Id=' + $products.val())
.done(function (result) {
$quantity.empty().append($('<option />', { value: '', text: $select, selected: true, disabled: true }));
$(result).each(function () {
$quantity.append(
$('<option />', {
value: this.Value
}).html(this.Text))
});
})
.fail(function (jqXHR) { console.log(jqXHR.responseText) });
};
ActionResult GetQuantity():
public ActionResult GetQuantity(int Id)
{
Product product = db.Products.Find(Id);
var quantity = new List<SelectListItem>();
for (var i = 1; i <= product.Quantity; i++)
{
quantity.Add(new SelectListItem()
{
Text = i.ToString(),
Value = i.ToString()
}
);
}
return Json(quantity, JsonRequestBehavior.AllowGet);
}
嗯,我只是想在更改产品后填写产品可用数量的下拉列表。不知道怎么回事。。
我查看了body响应,结果如下:
[{"Disabled":false,"Group":null,"Selected":false,"Text":"1","Value":"1"},{"Disabled":false,"Group":null,"Selected":false,"Text":"2","Value":"2"}]
正如我所料,但它没有填充下拉菜单。
响应头:
Answer HTTP/1.1 304 Not Modified
我有很多语法相同的脚本,它们都运行良好。
【问题讨论】:
-
在您的 jQuery 中,我认为
append()不接受对象作为参数。您的结果看起来像是返回了一个对象数组,这很好,但您需要 HTML 元素。看看这里 - stackoverflow.com/questions/815103/… 和这里 - stackoverflow.com/questions/8090457/… 他们可能会给你一个想法。你似乎也在自我关闭你不应该做的选项标签 -stackoverflow.com/questions/3558119/…