我有我写的打击代码的分类下拉列表,在它的onchange事件:如何简单的ID(jQuery的AJAX)发布到行动方法asp.net的MVC
function onChange() {
$.ajax(
{
url: '/Home/GetProducts/',
type: 'POST',
data: JSON.stringify({ID:$("#Category").val()}),
//contentType:"application/json; charset=utf-8",
dataType: "json",
success: function (data){
var jsonres = "";
$.each(data, function (i, variant) {
jsonres += '<option value="' + variant.ID + '">' + variant.Name+ '</option>';
});
$("#product").html(jsonres);
}
, error: function() { alert('Error'); }
});
}
和我的行动方法是:
[HttpPost]
public ActionResult GetProducts(int? ID)
{
var res = _teacherUow.GetProducts(ID.GetValueOrDefault()).Select(x => new { x.ID, x.Name }).ToList();
return Json(new { Result = true, data = res }, JsonRequestBehavior.AllowGet);
}
我的视图代码:
@Html.DropDownList("Category", new SelectList(ViewBag.Category, "ID", "Name"), new { id = "Category", onchange = "onChange()" })
<select data-val="true" id="product" name="product">
</select>
现在我有三个问题
1中的操作方法参数接收空
JSON结果是:
{"Result":true,"data":[{"ID":1,"Name":"xxx"},{"ID":3,"Name":"yyyy"}]}
2-但价值和产品的文本下拉是“未定义”
列表成员 3-使用html helper为产品字段创建空的下拉列表(用于通过Ajax请求填充数据成员) 任何人都可以请帮助我吗?
控制器是否被命中(是GetProducts还是GetProduc)?它应该是'$ .each(data.data,function(i,variant){...' – 2014-10-18 09:04:17
它是GetProducts – 2014-10-18 09:25:05