这里我试图删除按钮点击AJAX调用的数据。但问题是,点击按钮时,控制器动作没有被击中,即使动作的参数,即来自ajax的id有一个值。
以下是我的AJAX
<script>
$(document).ready(function () {
$("button#btnDeleteContestant").click(function () {
debugger;
var contstantId = $("#contestantId").val();
var parameter = { id: contstantId };
$.ajax({
url: "/Contestant/DeleteConfirm",
type: "POST",
dataType: "html",
data: parameter,
success: function (data) {
debugger;
$("div.modal-content").empty();
$("div.modal-content").html(data);
$("#myModal").modal();
}
});
});
});
</script>
以下是我在控制器中的动作
[HttpPost]
public ActionResult DeleteConfirm(int id)
{
try
{
_contestantService.Delete(id);
return RedirectToAction("Index");
}
catch
{
return View();
}
}
答案 0 :(得分:1)
我看到的唯一问题是url可能不正确,所以你可以利用Url.Action
方法来处理控制器动作方法生成正确的url:< / p>
url: "@Url.Action("DeleteConfirm","Contestant")"
希望它适合你。
答案 1 :(得分:0)
现在有很多问题可能会出现问题。我建议你使用$ .post,因为它假定了一些你必须自己指定的东西。所以我建议这样做:
<manifest ...>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>
$ .post确保您正在使用$ .ajax时必须明确说明的表单帖子。确保您的控制器操作使用HttpPost属性进行修饰。还要确保操作的参数名称是&#34; id&#34;匹配您在JSON对象中的内容。如果您的代码已经在剃刀视图中,则应使用@ Url.Action帮助程序构建按钮单击的URL。
如果它仍然不起作用,请使用浏览器的网络工具验证点击是否实际发出请求,然后查看它发出的请求以及您获得的响应类型。
如果您想坚持使用$ .ajax,那么我认为您还需要将内容类型指定为&#39; application / json;字符集= UTF-8&#39;并将你的json字符串化:
$("button#btnDeleteContestant").click(function () {
var contstantId = $("#contestantId").val();
$.post('@Url.Action("DeleteConfirm","Contestant")', { id: contstantId }, function(data){
// success handler code here...
});
});