C# @Ajax.ActionLink中的jQuery对话框(AjaxOptions)
我试图在C# @Ajax.ActionLink中的jQuery对话框(AjaxOptions),c#,jquery,ajax,asp.net-mvc,C#,Jquery,Ajax,Asp.net Mvc,我试图在OnBegin方法中的@Ajax.ActionLink(AjaxOptions)中打开JQuery对话框。我可以打开对话框,但什么时候确认什么也没发生 一旦我确认我想要控制转到控制器中的deleteMail方法 我不知道我错过了什么 @Ajax.ActionLink( "Delete", "DeleteEmail", new { CommunicationLocation = commemail.Communi
OnBegin
方法中的@Ajax.ActionLink(AjaxOptions)中打开JQuery对话框。我可以打开对话框,但什么时候确认什么也没发生
一旦我确认我想要控制转到控制器中的deleteMail
方法
我不知道我错过了什么
@Ajax.ActionLink(
"Delete",
"DeleteEmail",
new { CommunicationLocation = commemail.CommunicationLocation, CommunicationType = "email" },
new AjaxOptions()
{
HttpMethod = "Post",
UpdateTargetId = "DivEmailContainer",
OnBegin = "return ConfirmDone()"
},
new { @class = "btn btn-success" })
div
此项目将被删除。你确定吗
JS
$(文档).ready(函数(){
$(“#对话框确认”)。对话框({
自动打开:错误,
莫代尔:是的,
可调整大小:false,
身高:180,
});
});
函数ConfirmDone(){
var returnVal=false;
$(“#对话框确认”)。对话框({
按钮:{
“确认”:功能(){
returnVal=true;
$(this.dialog('close');
},
“取消”:函数(){
returnVal=false;
$(此).dialog(“关闭”);
}
}
});
$(“对话框确认”)。对话框(“打开”);
返回值;
};
您能在控制器中显示DeleteMail方法代码吗?.dialog()
是异步的,因此您总是返回false
,从而取消@Ajax.ActionLink
。您可能可以使用$.Deferred()
来实现这一点,但是当您单击对话框中的“确认”按钮时,忘记@Ajax.ActionLink
并进行Ajax调用会更容易。
<div id="dialog-confirm" title="Delete the item?">
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>This item will be deleted. Are you sure?</p>
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#dialog-confirm").dialog({
autoOpen: false,
modal: true,
resizable: false,
height: 180,
});
});
function ConfirmDone() {
var returnVal = false;
$("#dialog-confirm").dialog({
buttons: {
"Confirm": function () {
returnVal = true;
$(this).dialog('close');
},
"Cancel": function () {
returnVal = false;
$(this).dialog("close");
}
}
});
$("#dialog-confirm").dialog("open");
return returnVal;
};