c# - 让标签助手像 "button"一样工作 "a"

标签 c# asp.net-core asp.net-core-mvc

在 ASP.NET Core 中,我可以为链接项 a 设置一个 Action ,但是如果我将它更改为一个按钮,它就不再起作用了。

将操作/ Controller 绑定(bind)到按钮 点击的正确方法是什么?

<a asp-action="Delete" asp-route-id="@item.Id">remove</a> @*work*@

对比

<button asp-action="Delete" asp-route-id="@item.Id">remove</button> @*does not work*@

最佳答案

不是不行,它们是不同的Tag Helpers,用法不同:
如果将鼠标悬停在 <a> 上你会看到它实现了 AnchorTagHelper , 而 <button>实现 FormActionTagHelper ,因为它应该用于 <form>

因此,为了获得相同的行为,您可以这样做:

<a asp-action="Index">aaaa</a>

<form>
    <button asp-action="Index">bbbbb</button>
</form>

不过请注意,该按钮呈现为 formaction="/" , 不像 href="/" ,这就是为什么您需要将其包装在一个表单中。 第二个也可以这样写:

<form asp-action="Index">
    <button type="submit">bbbbb</button>
</form>

关于c# - 让标签助手像 "button"一样工作 "a",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44592268/

相关文章:

c# - 有没有可能 DbContext.SaveChanges() 返回 0 但没有异常?

c# - ASP .NET - 设置 ListView InsertItemTemplate 的默认值

c# - 在项目设置中保存 DateTimeOffset 设置时丢失精度

c# - 提供下载链接而不在服务器上创建文件

asp.net-core - 一个对象句柄有这么多TimerQueueTimer引用意味着什么

asp.net-core-mvc - 如何在 ASP.net core mvc 中的响应上设置 Expires header

c# - 无法使用 DI 选项在 AspNetCore 2.0 应用程序中创建 DbContext 的实例

.net - 如何从docker容器中的bash检查.net核心dll的版本

razor - Razor页面在运行时无法在ASP.NET Core RC2中看到引用的类库

c# - 如何在 ASP.NET 5 (MVC 6) 中添加 System.Web.Request 和 System.Web.Response 引用