我试图从jquery调用MVC控制器但是无法调用它。以下代码是否有任何问题 请弄清楚,如果有任何问题,我也没有收到任何错误。
URL = “HTTP://本地主机:49917 /帐户/ SaveAddress”
this.SaveAddress = function (url, addressData)
{
$.ajax({
type: "POST",
url: url,
dataType: "json",
data: JSON.stringify(addressData),
contentType: 'application/json; charset=utf-8',
success: function (responseDetail) {
},
error:function(e)
{
},
});
return 0;
};
public async Task<ActionResult> SaveAddress(AddressListViewModel addressListVM)
{
bool response;
string message;
if (addressListVM.ID <= 0)
{
response = await Task.Run(() => AccountManager.Instance().AddAddress(addressListVM));
message = response ? "New address added successfully." : "Failed to add new address.";
}
else
{
response = await Task.Run(() => AccountManager.Instance().UpdateAddress(addressListVM));
message = response ? "Selected address updated successfully." : "Failed to update selected address.";
}
ModelState.Clear();
return Json(new { responsestatus = response, message = message }, JsonRequestBehavior.AllowGet);
//return PartialView("_AddressDetail", BuildAddressListEntity(
// UserManager.FindById(User.Identity.GetUserId()), response, message, addressListVM.ID, true));
}
答案 0 :(得分:0)
是的,你在this.saveaddress函数的末尾缺少一个结束括号
this.SaveAddress = function (url, addressData)
{
$.ajax({
type: "POST",
url: url,
dataType: "json",
data: JSON.stringify(addressData),
contentType: 'application/json; charset=utf-8',
success: function (responseDetail) {
},
error:function(e)
{
},
});
所有这些......你还需要一个结束括号:
}
)
答案 1 :(得分:0)
控制台显示什么?如果您使用的是Chrome,请右键单击,选择“检查”,然后找到“控制台”选项卡。如果你正确调用AJAX函数,那么必须在这个控制台选项卡中显示一些东西,这可能会比我对我的信息更好地引导你朝着正确的方向前进。
答案 2 :(得分:0)
在成功和错误功能中加入断点。如果它遇到错误函数,那么问题是找不到控制器操作或者数据是无效的json(发布数据或返回数据)。您应该将errorThrown参数添加到错误函数中,以便您可以轻松查看问题所在。如果数据已经是有效的json,你也不需要对数据进行字符串化,但是如果它是一个表示json数据的字符串,你将需要使用json.parse(抱歉不正确的情况)。