什么是带有脚本的 Html.ActionLink 的 Asp.Net Core TagHelper 等价物

Dav*_*eli 6 c# asp.net-core-mvc asp.net-core asp.net-core-tag-helpers

我想在删除之前提示确认对话框。我在这里找到了这个很好用的答案

@Html.ActionLink(
          "Delete",
          "Delete",
          new { id = post.OriginalPost.ID },
          new { onclick = "return confirm('Are you sure you wish to delete this post?');" });
Run Code Online (Sandbox Code Playgroud)

但正如我在 Core 中的理解,应该避免使用 ActionLinks。那么是否有任何标签助手或不同的方法来做到这一点?

SO *_*ood 5

您通常会使用AnchorTagHelper

<a asp-action="Delete" asp-route-id="@post.OriginalPost.ID" 
    onclick="return confirm('Are you sure you wish to delete this post?');">Delete</a>
Run Code Online (Sandbox Code Playgroud)

  • 简单来说,标签助手只是重写 HTML。对于像锚标记这样的东西,Razor 正在寻找像“asp-action”这样的属性来通过标记帮助器提供它,最终返回带有有意义的更改/添加的相同标记,例如添加“href”属性正确的网址。其他属性只是随波逐流,因此如果您向标记帮助器添加类似“onclick”的内容,最终您将在实际渲染的锚标记上得到相同的“onclick”。 (2认同)