【发布时间】:2014-03-29 21:07:06
【问题描述】:
使用MVC,如果用户点击垃圾桶图标,它会从视图中POSTmobileDevice.Id调用MobileDeviceController的ConfirmDeactivate动作
//VIEW
<a onclick="Deactivate(@mobileDevice.Id);" class="show-pointer"><i class="icon-trash"></i>Click here</a>
<script>
function Deactivate(mobileDeviceId) {
alert(mobileDeviceId);
$.ajax({
url: 'MobileDevice/ConfirmDeactivate',
type: 'POST',
contentType: 'application/json;',
data: JSON.stringify({ targetid: mobileDeviceId })});
}
</script>
//controller
[HttpPost]
public ActionResult ConfirmDeactivate(int targetid)
{
//update target
}
我是否缺少 ajax 引用或其他内容?
或者有人有其他想法吗?关于这个。
更新 按照我尝试过的答案:
//VIEW
<a href="javascript:void(0);" id="post-btn" data-device-id="@mobileDevice.Id" class="show-pointer"><i class="icon-trash">/i>Click here</a>
<script>
$('#post-btn').on('click', function() {
alert(targetid);
$.ajax({
url: '@Url.Action("ConfirmDeactivate", "MobileDevice")''~/MobileDevice/ConfirmDeactivate',
type: 'POST',
data: { targetid: $(this).data('device-id') }
});
})
</script>
//controller
[HttpPost]
public ActionResult ConfirmDeactivate(int targetid)
{
//update target
}
但这不起作用。尝试添加警报,但没有显示
$('#post-btn').on('click', function() {
alert(targetid);
请指教
【问题讨论】:
-
控制台说什么?
-
是的 JQuery 已定义,当我按下 'bin' 时没有任何反应
-
使用浏览器的调试工具检查您的网络流量。验证它是否正在发送请求,并且它会发送到您认为的位置。您应该能够使用它来追踪出了什么问题。如果它实际上到达了控制器方法,那么你应该能够在那里进一步调试。
-
我猜你应该使用'~/MobileDevice/ConfirmDeactivate'。
-
按照 Maess 的指示进行操作,并将其放入 $(document).ready() 函数中,然后查看您的警报是否触发。
标签: javascript html asp.net ajax asp.net-mvc-3