在Asp.NETMVC2应用程序中使用jquery确认删除链接
我有一个带有删除链接的记录的表。基本上,我遵循了关于MVC中该部分的NerdDinner教程。但是我不想使用confirm视图,我宁愿使用confirm对话框,如果确认了,就让HttPost操作方法直接删除记录 我做了一些工作,但作为MVC和jQuery的新手,我不确定我是否做对了 以下是jQuery:在Asp.NETMVC2应用程序中使用jquery确认删除链接,asp.net,jquery,entity-framework,asp.net-mvc-2,Asp.net,Jquery,Entity Framework,Asp.net Mvc 2,我有一个带有删除链接的记录的表。基本上,我遵循了关于MVC中该部分的NerdDinner教程。但是我不想使用confirm视图,我宁愿使用confirm对话框,如果确认了,就让HttPost操作方法直接删除记录 我做了一些工作,但作为MVC和jQuery的新手,我不确定我是否做对了 以下是jQuery: $(function () { $('.delete').click(function () { var answer = confirm('Do
$(function () {
$('.delete').click(function () {
var answer = confirm('Do you want to delete this record?');
if (answer) {
$.post(this.href, function () {
window.location.reload(); //Callback
});
return false;
}
return false;
});
});
以及删除操作链接:
<%: Html.ActionLink("Delete", "Delete", new { id = user.UserID }, new { @class = "delete" })%>
现在,我有几个问题:
如有任何澄清,将不胜感激 就这样,有完整的代码: 或者只是html帮助程序:
public static string DeleteLink(this HtmlHelper html, string linkText, string routeName, object routeValues) {
var urlHelper = new UrlHelper(html.ViewContext.RequestContext);
string url = urlHelper.RouteUrl(routeName, routeValues);
string format = @"<form method=""post"" action=""{0}"" class=""delete-link"">
<input type=""submit"" value=""{1}"" />
{2}
</form>";
string form = string.Format(format, html.AttributeEncode(url), html.AttributeEncode(linkText), html.AntiForgeryToken());
return form + html.RouteLink(linkText, routeName, routeValues, new { @class = "delete-link", style = "display:none;" });
}
publicstaticstringdeletelink(此HTMLHelperHTML、stringlinkText、stringrouteName、objectrouteValue){
var urlHelper=新的urlHelper(html.ViewContext.RequestContext);
字符串url=urlHelper.RouteUrl(routeName,routeValues);
字符串格式=@“
{2}
";
string form=string.Format(格式为html.attributencode(url)、html.attributencode(linkText)、html.AntiForgeryToken());
返回表单+html.RouteLink(linkText,routeName,routeValue,新的{@class=“delete link”,style=“display:none;”);
}
关于您的问题:
返回false
语句用于
目的与
e.preventDefault()
在这种情况下。
通过返回false,JavaScript可以防止
浏览器无法执行链接的
默认的点击处理程序如果您还想将jQuery对话框抛出给参与方,那么这就做得很好
谢谢!但是关于删除规则:我如何设置它们?在谷歌上搜索我知道我也应该在数据库中“设置级联删除”。但我找不到任何关于如何做到这一点的方法。我只知道在关系中将“强制外键约束”设置为“是”。这取决于您的数据库引擎,但下面是一些如何定义外键约束的示例:
public static string DeleteLink(this HtmlHelper html, string linkText, string routeName, object routeValues) {
var urlHelper = new UrlHelper(html.ViewContext.RequestContext);
string url = urlHelper.RouteUrl(routeName, routeValues);
string format = @"<form method=""post"" action=""{0}"" class=""delete-link"">
<input type=""submit"" value=""{1}"" />
{2}
</form>";
string form = string.Format(format, html.AttributeEncode(url), html.AttributeEncode(linkText), html.AntiForgeryToken());
return form + html.RouteLink(linkText, routeName, routeValues, new { @class = "delete-link", style = "display:none;" });
}