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的回答,但这需要一些时间