У меня есть гиперссылка, на клик-событие которой я вызываю метод delete в моем контроллере (используя jquery.get), проблема, с которой я сталкиваюсь, заключается в том, что она никогда не вызывается, и удаление никогда не выполняется, просмотрите код, чтобы получить четкое понимание!
$('.hyp').click(function () {
var id = $(this).attr('href');
alert(id);
//$('.' + delid).hide("slow");
//$('#delid').remove();
$.get('admin/deletecomment', { id:id }, function (data) {
if (data == 1) {
debugger;
alert("Deletion Done");
}
else {
alert("error");
}
});
});
**controller method**
public ActionResult deletecomment(int id)
{
var v = (dd.usercomments.Where(m => m.id == id).Select(m => m)).FirstOrDefault();
if (v != null)
{
dd.usercomments.DeleteOnSubmit(v);
dd.SubmitChanges();
return Json("1", JsonRequestBehavior.AllowGet);
}
else
{
return Json("0", JsonRequestBehavior.AllowGet);
}
}
HTML
<h5 style="background-color:#808080;font-family:'Cambria Math';text-align:center;padding-top:1px;margin-right:16px;margin-top:5px">Comments Posted by User</h5>
@foreach( var item in Model)
{
<div class="parentd" id="@item.id" style="border:1px solid black;font-size:large;font-family:'Times New Roman';margin-right:6px;margin-bottom:2px">@item.userid
<a class="hyp" href="@item.id" style="position:relative;width:10px;height:10px;padding-left:10%;display:none"><img src="~/images/del.jpg" style="width:20px;height:20px"/></a><div class="@item.id" style="display:none">@item.comments</div>
</div>
}
Попробуйте следующее:
$.get('admin/deletecomment', {id: id}, function (data) {
if (data == 1) {
debugger;
alert("Deletion Done");
} else {
alert("error");
}
}, "json"); // as response is json
Когда вы возвращаете json
из своего контроллера, чтобы вы могли это сделать.
Для тестового примера, если вы возвращаете json
это должно быть чем-то вроде js-объекта с парами { key: value }
.
поэтому, if (data == 1) {
будет неправильной проверкой, вы должны проверить что-то вроде этого:
if (data.key == 1) { // only if you have something like { key : 1}