我正在尝试使用MVC4 Web应用程序中的jQuery Ajax将下拉列表中所选项的值发回给我的控制器中的Action方法。我有一个名为MeditechDropDown的下拉列表,这是我的jQuery函数,它不是很有效。我设法达到我的Action方法,但进入的值为null。
jQuery(document).ready(function () {
$("#MeditechDropDown").change(function () {
$.ajax({
url: "/Home/PopulateEmailAddressUI",
data: JSON.stringify('id=' + $(this).val()), // Send value of the drop down change of option
type: 'POST',
contentType: 'application/json; charset=utf-8',
success: function (data) {
// Variable data contains the data you get from the action method
}
});
});
});
操作名称为PopulateEmailAddressUI。有人会对我做错了吗?我知道我没有正确编写我的jQuery函数。非常感谢。
答案 0 :(得分:0)
我在.NET MVC4中编写了一些成功的jQuery ajax调用。这就是他们的样子:
$('#projectList').on('click', 'li', function () {
pid = $(this).data('id');
$.ajax({
type: 'POST',
url: '/Admin/GetProject',
data: '{ id: ' + pid + ' }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
projectRetrieved(data);
}
});
});
控制器:
[HttpPost]
public ActionResult GetProject(int id) {
string connStr = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;
SqlConnection conn = new SqlConnection(connStr);
string sql = "SELECT * FROM [Portfolio] WHERE [id] = @id";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.SelectCommand.Parameters.Add(new SqlParameter("@id", id));
DataTable dt = new DataTable();
conn.Open();
da.Fill(dt);
da.Dispose();
conn.Close();
return Json(objConv.DataTableToArrayList(dt), JsonRequestBehavior.AllowGet);
}
答案 1 :(得分:0)
您可以这样写:
jQuery(document).ready(function () {
$("#MeditechDropDown").change(function () {
var id=$(this).val();
$.ajax({
url: "/Home/PopulateEmailAddressUI",
data: {clientID:id},
type: 'POST',
contentType: 'application/json; charset=utf-8',
success: function (data) {
// Variable data contains the data you get from the action method
}
});
});})
数据参数名称中的应该是Controller参数名称
答案 2 :(得分:0)
这是完整的WORKING jQuery脚本:
jQuery(document).ready(function () {
$("#MeditechDropDown").change(function () {
var id = $(this).find(":selected").val()
var clientID = { "clientID" : id }
console.log(id)
$.ajax({
url: "/Home/PopulateEmailAddressUI",
data: JSON.stringify(clientID),
type: 'POST',
contentType: 'application/json; charset=utf-8',
success: function (data) {
// Variable data contains the data you get from the action method
}
});
});
});
谢谢大家,特别感谢zgood:)