【发布时间】:2016-05-31 15:09:15
【问题描述】:
我正在尝试通过 POSTRequest 在客户端代码中插入数据。当请求转到控制器方法时,我无法检索发送的数据。 客户端代码:
function AddUser()
{
var user = { UserID: $('#UidTxt').val, UserName: $('#UnameTxt').val, Password: $('#PwdTxt').val, Email: $('#EmailTxt').val, Address: $('#AddrTxt').val, DOB: $('#DobTxt').val, Phone: $('#PhoneTxt') };
$.ajax({
url: 'http://localhost:61540/api/UserDetails/AddUser',
type: 'POST',
data: JSON.stringify(user),
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (data) {
alert("success! data is posted/inserted.")
},
error: function (xhr, status) {
alert(xhr.ResponseText);
}
});
}
Web Api 控制器方法:
[System.Web.Http.AcceptVerbs("POST")]
[ActionName("AddUser")]
[System.Web.Http.HttpPost]
[System.Web.Http.HttpOptions]
public List<UserDetails> AddUser(UserDetail oUserList)
{
if (oUserList != null)
{
db.UserDetails.Add(oUserList);
db.SaveChanges();
}
var userList = db.UserDetails.ToList();
return DTOConverter.ConvertUserDetail(userList);
}
在调试时,调用命中控制器方法,我发现 oUserList 对象为空。 我是否正确传递数据?如果我错了,请纠正我。 提前致谢。
编辑:
function AddUser()
{
var UserID = $('#UidTxt').val();
var UserName= $('#UnameTxt').val();
var Password = $('#PwdTxt').val();
var Email= $('#EmailTxt').val();
var Address= $('#AddrTxt').val();
var DOB = $('#DobTxt').val();
var Phone = $('#PhoneTxt').val();
var data = 'UserID=' + UserID + '&UserName=' + UserName + '&Password=' + Password + '&Email=' + Email + '&Address=' + Address + '&DOB=' + DOB + '&Phone=' + Phone ;
$.ajax({
url: 'http://localhost:61540/api/UserDetails/AddUser',
type: 'POST',
data: data,
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (data) {
alert("success! data is posted/inserted.")
},
error: function (xhr, status) {
alert(xhr.ResponseText);
}
});
}
【问题讨论】:
-
您是否尝试过使用 get 设置获取所有值,然后将其添加到一个字符串并将它们传递给 ajax?
-
所以添加 var username = UserID: $('#UnameTxt').val(); var 密码 = $('#PwdTxt').val();等添加 var data = 'username=' +username+ '&password=' +password+ etc ;在 ajax 调用中添加数据:数据,数据类型:'json'。如果您收到错误,请在此处写下哪一个。
-
你能发布
UserDetails类的实现吗?你的AddUser方法有UserDetail或UserDetails参数吗? -
我按照你说的试过了,没有帮助。它抛出错误“未定义”。 @KondukterCRO
-
是的,它有 UserDetails 类的参数。 @feeeper
标签: jquery asp.net ajax asp.net-web-api http-post