我是asp.net MVC的新手,我有一个从数据库填充的下拉列表。现在我需要在控制器中的get函数中发送所选值(id),以便我可以加载选定的值细节 这是我试过的代码。
查看:
@Html.DropDownListFor(model => model.ProductName, new SelectList(Model.ProductsList, "ProductID", "ProductName"), new
{
id = "Productslist",
@class = "GreenDropDownListStyle",
@datastyle = "dropdown",
})
java脚本代码:
<script type="text/javascript">
$(document).ready(function () {
$("#Productslist").change(function () {
debugger;
var SelectedProductID = this.value;
if (SelectedProductID != "") {
$.ajax(
{
type: 'GET',
url: '/Inventory/ViewProduct',
data: { ProductID: SelectedProductID },
contentType: 'application/json; charset=utf-8',
success: function (details) {
//alert("success");
},
});
} else {
}
});
});
</script>
此代码可以获取所选的id并查看成功警报消息,但它不会将所选值(id)发送到控制器中的post函数
Cotroller:
[HttpPost]
public ActionResult ViewProduct(int? ProductID)
{
if (ProductID != null && ProductID >0)
{
}
else
{
message = "";
}
return View();
}
答案 0 :(得分:0)
您应在此处指定POST
作为http方法。
$.ajax({
method: 'POST',
url: '/Inventory/ViewProduct',
data: { ProductID: SelectedProductID },
contentType: 'application/json; charset=utf-8',
success: function (details) {
//alert("success");
}
});
值得检查this link以获取有关如何使用jquery ajax函数的更多详细信息。
顺便说一句,如果您使用的是1.9.0之前的jQuery版本,请使用type: 'POST'
而不是method: 'POST'
。
答案 1 :(得分:0)
试试这个:
var jsn = { ProductID: SelectedProductID };
jsn = JSON.stringify(jsn);
$.ajax({
type: "POST",
url: "/Inventory/ViewProduct",
data: jsn,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function () {
}
});