Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 将Jquery UI对话框值发送到Url.Action_Jquery Ui_Razor_Asp.net Mvc 5 - Fatal编程技术网

Jquery ui 将Jquery UI对话框值发送到Url.Action

Jquery ui 将Jquery UI对话框值发送到Url.Action,jquery-ui,razor,asp.net-mvc-5,Jquery Ui,Razor,Asp.net Mvc 5,不确定如何将bool传递给我的(正在工作的)C#方法DeleteTestuser。我已经在谷歌上搜索过了,但是里程数会随着各种陷阱而变化,例如旧信息、糟糕的语法 如果用户确认操作,我需要返回bool,而不是在下面将confirm传递为false。谢谢 index.cshtml <a href="@Url.Action("DeleteTestUser", "Home", new {id = testUser.TestUserId, confirm = false})" id="co

不确定如何将bool传递给我的(正在工作的)C#方法DeleteTestuser。我已经在谷歌上搜索过了,但是里程数会随着各种陷阱而变化,例如旧信息、糟糕的语法

如果用户确认操作,我需要返回bool,而不是在下面将confirm传递为false。谢谢

index.cshtml

<a href="@Url.Action("DeleteTestUser", "Home",
    new {id = testUser.TestUserId, confirm = false})" 
id="confirm-delete">

_layout.cshtml

    <script type="text/javascript">
    $(function () {

        $('#dialog-modal').dialog(
            {
                title: 'Test User',
                draggable: false,
                resizeable: false,
                closeOnEscape: true,
                modal: true,
                autoOpen: false,
                buttons: {
                    'Yes': function () {
                        $(this).dialog('close');
                        confirmResult(true);

                    },
                    'No': function () {
                        $(this).dialog('close');
                        confirmResult(false);
                    }
                }
            });

        $('#confirm-delete').click(function () {
            $('#dialog-modal').dialog("open");
        });

        function confirmResult(result) { return result }
    });

</script>

$(函数(){
$(“#对话框模式”)。对话框(
{
标题:“测试用户”,
可拖动:错误,
可调整大小:false,
closeOnEscape:没错,
莫代尔:是的,
自动打开:错误,
按钮:{
“是”:函数(){
$(this.dialog('close');
确认结果(真);
},
“否”:函数(){
$(this.dialog('close');
确认结果(假);
}
}
});
$(“#确认删除”)。单击(函数(){
$(“#对话框模式”)。对话框(“打开”);
});
函数confirmResult(result){返回结果}
});

基本上,您正在使用jQuery UI对话框重新创建自己的
confirm()
。我这样做了,这里有一个类似的案例:

将这一点应用到您的场景中,您可以得到如下结果:

$(函数(){
功能ui_确认(消息、回调){
var dfd=$.Deferred();
变量对话框=$(“”{
id:“确认”
})
.html(信息)
.appendTo($(“正文”))
.数据(“选择”,错误)
.对话({
自动打开:错误,
可调整大小:false,
标题:“确认”,
zIndex:9999999,
莫代尔:是的,
按钮:[{
文本:“是”,
单击:函数(){
$(此).dialog(“关闭”);
dfd.resolve(正确);
if($.isFunction(回调)){
callback.apply();
}
}
}, {
文本:“否”,
单击:函数(){
$(此).dialog(“关闭”);
dfd.resolve(错误);
}
}],
关闭:功能(事件、用户界面){
$(“#确认”).remove();
}
});
dialog.dialog(“打开”);
返回dfd.promise();
}
函数deleteUser(id){
//您将执行以删除用户或发回的代码。
}
$(“.button”).button();
$('.del')。单击(函数(e){
e、 预防默认值();
//你的代码
$.when(ui_确认(“您确定吗?”).done(函数(val){
if(val){
日志(“删除用户确认”);
deleteUser($(this.attr(“id”));
}否则{
log(“不要删除用户”);
}
});
});
});


John Smith
到底是什么不起作用?@Twisty As is,严格来说没有什么错,但我需要将一个bool从对话框传递给DeleteTestUser,但我不确定如何做。您需要使用javascript更改
href
值。但是您也可以在链接中使用
href=“#”
,然后您的脚本使用
location.href=“…”
进行重定向。首先,您的
按钮格式不正确<代码>按钮:[{text:“Yes”,单击:function(){},{text:“No”,单击:function(){}]
谢谢。今天晚些时候,我会更深入地研究这个问题,但我可能还不清楚。我的基本需求是通过razor将确认对话框选择(true或false)最终传递给C#方法。我不确定你提供的东西确实能做到这一点。所以js-->razor--C#@Steve我没有提供,因为您没有说明要如何做。我想回邮最好。这类似于AJAX发布到后端Razor或C#脚本。@Steve稍微更新了我的答案。看起来你可以用GET。我不使用剃须刀,也不经常使用C#,所以我必须查一下。谢谢。我会试试看。我也意识到我可能只是看错了。如果用户取消删除操作,我可能只需要重定向,而不是试图传递布尔值。您的答案可能确实有效,但实际上我问错了问题。我需要取消或发布到Url.Action。我不需要传递布尔值。谢谢