首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionLink删除确认

ActionLink删除确认
EN

Stack Overflow用户
提问于 2012-09-18 11:44:38
回答 1查看 8.3K关注 0票数 3

我想让Javascript弹出,问我是否想删除一个列表。

下面是我目前所拥有的(不起作用- Guid是空的,当控制器捕获时)。

代码语言:javascript
复制
@Html.ActionLink("Delete", "Delete", "Listing", listing.Guid, new { onclick = "return confirm('Are you sure you want to delete this listing?')" })

第一个删除是字符串,第二个删除是方法的ActionName,列表是控制器名称,listing.Guid是我想要发送的参数,最后,当然,onclick是Javascript。

知道我哪里可能出了大错吗?

编辑,知道我怎么能有一个更漂亮的确认对话框吗?用靴带。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-18 11:46:26

可以使用匿名对象传递路由值:

代码语言:javascript
复制
@Html.ActionLink(
    "Delete", 
    "Delete", 
    "Listing", 
    new { id = listing.Guid }, 
    new { onclick = "return confirm('Are you sure you want to delete this listing?')" }
)

以及相应的控制器操作:

代码语言:javascript
复制
public ActionResult Delete(Guid id)
{
    ...
}

是的,使用ActionLinks并获取请求来调用正在修改服务器上状态的操作(例如删除某些内容)是一个非常糟糕的主意。更好的方法是在这种情况下使用正确的HTTP谓词-- DELETE。但是,由于HTML表单并不普遍支持这个动词,所以可以使用AJAX或POST谓词:

代码语言:javascript
复制
@using (Html.BeginForm("Delete", "Listing", new { id = listing.Guid }, FormMethod.Post, new { onsubmit = "return confirm('Are you sure you want to delete this listing?');" }))
{
    @Html.HttpMethodOverride(HttpVerbs.Delete)
    <button type="submit">Delete</button>
}

以及你们各自的控制员行动:

代码语言:javascript
复制
[HttpDelete]
public ActionResult Delete(Guid id)
{
    ...
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12476367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档