【发布时间】:2018-09-17 15:26:09
【问题描述】:
我正在使用 AJAX 向数据库动态添加数据,并在 MVC 中使用 foreach 循环显示它们,我还添加了一个按钮来使用 ajax 调用删除这些数据。
HTML/MVC 代码:
<div id="divaddrules" class="form-group row">
@try
{
foreach (var item in ViewBag.AdditionalRules)
{
<div class="col-sm-10">
<p style="font-size:large">@item.AdditionalDesc</p>
</div>
<div class="col-sm-2">
<input type="button" onclick="Removeinput(@item.id)" class="text-dark" style="border:none; background-color:transparent" value="X" />
</div>
}
}
catch (Exception ex){ }
</div>
现在,当我点击删除按钮时,它会调用以下 JS 代码:
function Removeinput(id) {
var datas = {};
datas.addId = id
$.ajax({
url: "/Rooms/RemoveAdditionalRules",
type: "GET",
data: datas,
success: function (result) {
alert(result.id);
$("#divaddrules").load(window.location.href + " #divaddrules");
},
error: function (result) {
alert("Error: " + result.status);
}
});
}
并将其传递给此控制器:
[HttpGet]
[Authorize]
public ActionResult RemoveAdditionalRules(int addId)
{
HouseRules rules = db.HouseRules.Find(addId);
db.HouseRules.Remove(rules);
db.SaveChanges();
return Json(JsonRequestBehavior.AllowGet);
}
我在 ajax 调用错误时收到 500 错误。
谁能告诉我哪里做错了?请..我被困在这里了。
更新: 附截图:Debug Screenshot
【问题讨论】:
-
return Json(JsonRequestBehavior.AllowGet)=> 实际上你没有返回任何 JSON 数据,这可能是你的 500 错误的原因。试试return Json(new { id = addId }, JsonRequestBehavior.AllowGet)。 -
你能打到服务器吗?
-
我认为您已经创建了一个模型来传递数据,并且在行动中您已将其作为参数
-
@TetsuyaYamamoto 我试过了,还是一样的错误!
-
尝试删除
AuthorizeAttribute([Authorize])。是否仍然出现相同的错误?有时在控制台中,AJAX 调用会返回解释错误的 HTML 标记。也可以试试data: { addId: id },。
标签: ajax asp.net-mvc