Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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
MVC使用Javascript弹出窗口删除记录_Javascript_Asp.net Mvc_Model View Controller_Popup - Fatal编程技术网

MVC使用Javascript弹出窗口删除记录

MVC使用Javascript弹出窗口删除记录,javascript,asp.net-mvc,model-view-controller,popup,Javascript,Asp.net Mvc,Model View Controller,Popup,我已经完成了创建、编辑功能并尝试执行删除功能,但默认情况下,我的页面会重定向到删除.aspx进行删除确认。 我希望在尝试删除记录时执行以下步骤。目前我在 index.aspx并希望保持在同一页上&从数据库中删除记录 图1 图2 图3 我不希望从URL中删除此内容。 例如,,任何人都可以很容易地删除任何提供id的记录。你必须通过某种id来完成,没有其他方法 如果你不想让用户操纵URL,你需要某种登录/权限系统。你必须通过某种id进行操作,没有其他方法 如果您不希望用户操纵URL,则需要某种登

我已经完成了创建、编辑功能并尝试执行删除功能,但默认情况下,我的页面会重定向到
删除.aspx
进行删除确认。 我希望在尝试删除记录时执行以下步骤。目前我在 index.aspx并希望保持在同一页上&从数据库中删除记录

图1

图2

图3

我不希望从URL中删除此内容。
例如,,任何人都可以很容易地删除任何提供id的记录。

你必须通过某种id来完成,没有其他方法


如果你不想让用户操纵URL,你需要某种登录/权限系统。

你必须通过某种id进行操作,没有其他方法

如果您不希望用户操纵URL,则需要某种登录/权限系统。

使用jquery尝试以下操作:

<script type="text/javascript">

    $(function () {
        $(".delete").live("click", function (e) {
            e.preventDefault();
            if (confirm("Are you sure you wish to delete this article?")) {
                $.post(this.href);
            }
        });
    });
</script>

<a href="/Project/Delete/11" class="delete">Delete</a>

$(函数(){
$(“.delete”).live(“单击”,函数(e){
e、 预防默认值();
如果(确认(“您确定要删除此文章吗?”)){
$.post(this.href);
}
});
});
用jquery试试这个:

<script type="text/javascript">

    $(function () {
        $(".delete").live("click", function (e) {
            e.preventDefault();
            if (confirm("Are you sure you wish to delete this article?")) {
                $.post(this.href);
            }
        });
    });
</script>

<a href="/Project/Delete/11" class="delete">Delete</a>

$(函数(){
$(“.delete”).live(“单击”,函数(e){
e、 预防默认值();
如果(确认(“您确定要删除此文章吗?”)){
$.post(this.href);
}
});
});

要使用javascript和弹出窗口执行删除,您需要: 1) 在控制器中创建一个动作,如下所示:

[HttpPost]
public void DeleteItem(int id)
@for (int i = 0; i < Model.Items.Count; i++)
{                            
     <a href="#" class="delete-button" data-id="@Model.Items[i].Id">Delete</a>        
}
通过使用[HttpPost]注释装饰action方法,可以避免用户键入URL/Home/Delete/1时出现不希望出现的行为,因为只有POST才会调用该操作

2) 如果删除的项目是项目列表的一部分,则需要使用自定义HTML5属性将一种id绑定到视图中的项目,如下所示:

[HttpPost]
public void DeleteItem(int id)
@for (int i = 0; i < Model.Items.Count; i++)
{                            
     <a href="#" class="delete-button" data-id="@Model.Items[i].Id">Delete</a>        
}
我们需要指定一个回调来处理delete按钮的单击

4) 例如,使用jQuery UI对话框组件:

为弹出文本创建HTML

<div id="dialog-confirm" style="display:none;" title="Confirm">
<p>
    <span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>
    Are you sure you want to proceed?
</p>
</div> 
所以,我们得到了按钮的id

var recordToDelete = $(this).attr("data-id");
其中“this”是导致事件使用

下一行实际上是我们要求控制器执行删除操作的地方,我们使用记录的id

$.post("/Home/Delete", { id : recordToDelete}, DeleteSuccessfull);
5) 因为jQuery post是异步的,所以我们需要回调来处理结果

function DeleteSuccessfull()
{
    //Do what you want...
};

就这样。。。请记住,这只是一个示例,我正在使用jQuery对话框组件,而您可以使用其他组件。

要使用javascript和弹出窗口执行删除,您需要: 1) 在控制器中创建一个动作,如下所示:

[HttpPost]
public void DeleteItem(int id)
@for (int i = 0; i < Model.Items.Count; i++)
{                            
     <a href="#" class="delete-button" data-id="@Model.Items[i].Id">Delete</a>        
}
通过使用[HttpPost]注释装饰action方法,可以避免用户键入URL/Home/Delete/1时出现不希望出现的行为,因为只有POST才会调用该操作

2) 如果删除的项目是项目列表的一部分,则需要使用自定义HTML5属性将一种id绑定到视图中的项目,如下所示:

[HttpPost]
public void DeleteItem(int id)
@for (int i = 0; i < Model.Items.Count; i++)
{                            
     <a href="#" class="delete-button" data-id="@Model.Items[i].Id">Delete</a>        
}
我们需要指定一个回调来处理delete按钮的单击

4) 例如,使用jQuery UI对话框组件:

为弹出文本创建HTML

<div id="dialog-confirm" style="display:none;" title="Confirm">
<p>
    <span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>
    Are you sure you want to proceed?
</p>
</div> 
所以,我们得到了按钮的id

var recordToDelete = $(this).attr("data-id");
其中“this”是导致事件使用

下一行实际上是我们要求控制器执行删除操作的地方,我们使用记录的id

$.post("/Home/Delete", { id : recordToDelete}, DeleteSuccessfull);
5) 因为jQuery post是异步的,所以我们需要回调来处理结果

function DeleteSuccessfull()
{
    //Do what you want...
};

就这样。。。请记住,这只是一个示例,我正在使用jQuery对话框组件,而您可以使用不同的组件。

如果您试图实现真正的MVC,正如您的问题所暗示的,事件事务将提交给控制器,类似index.aspx-该控制器将有一个事件,指定您所在的当前视图页,如

event=“displayGui”将包括视图文件“frmCreate.aspx”或“frmEdit.aspx”

当视图文件“frmCreate.aspx”或“frmEdit.aspx”提交时,它调用控制器中的另一个事件,如

event=“submitAndConfirm”

事件submitAndConfirm将包括处理删除操作的说明,方法是包含一个名为actDelete.aspx的文件。当actDelete.aspx完成工作时,控制器将回调event=“displayGui”


这是一个概念性的示例,需要特定于aspx的实现。

如果您试图实现真正的MVC,正如您的问题所暗示的,事件事务将提交给控制器,如index.aspx-该控制器将有一个事件,指定您所处的当前视图页面,如

event=“displayGui”将包括视图文件“frmCreate.aspx”或“frmEdit.aspx”

当视图文件“frmCreate.aspx”或“frmEdit.aspx”提交时,它调用控制器中的另一个事件,如

event=“submitAndConfirm”

事件submitAndConfirm将包括处理删除操作的说明,方法是包含一个名为actDelete.aspx的文件。当actDelete.aspx完成工作时,控制器将回调event=“displayGui”

这是一个概念性示例,需要特定于aspx的实现

我不希望从URL中删除此内容。例如,任何人都很容易删除任何提供记录的id

如果不希望用户猜测id,请使用Guid而不是int

我不希望从URL中删除此内容。例如,任何人都很容易删除任何提供记录的id

如果不希望用户猜测id,请使用Guid而不是int


如果您至少在此处发布一些代码供我们使用,那就更好了。如果您至少在此处发布一些代码供我们使用,那就更好了。感谢Sonica的回答,但这需要一些时间