MVC5 中 ActionLink 的 HTML 按钮
Posted
技术标签:
【中文标题】MVC5 中 ActionLink 的 HTML 按钮【英文标题】:HTML button from ActionLink in MVC5 【发布时间】:2021-12-26 16:26:15 【问题描述】:我有这样的 ActionLink:
<td class="options">
@html.ActionLink("Settings", "RedirectToSettings", new locationId = item.LocationId )
</td>
但我想把它变成一个按钮,而不仅仅是可点击的文本。无论是使整个单元格可点击还是添加按钮元素。
我查看了关于 SO 的其他问题,例如 HTML button calling an MVC Controller and Action method,但我无法弄清楚如何让它发挥作用。
我试过直接把它做成一个按钮,并使用input
:
<td class="options">
<input type="button" value="Settings" onclick="@Html.ActionLink("Settings", "RedirectToSettings", new locationId = item.LocationId)"/>
</td>
我能够获取该按钮,但单击它不会将我重定向到我在控制器的“RedirectToSettings”中指定的页面。
public ActionResult RedirectToSettings(int locationId)
*doing stuff with the locationId*
return RedirectToAction("StationSettings");
按钮:
我怎样才能做到这一点?非常感谢任何帮助!
更新:
使用Html.BeginForm
解决了这个问题,支持 Serge 的想法。
<td class="options">
@using (Html.BeginForm("RedirectToSettings", "Configs", new locationId = item.LocationId ))
<input type="submit" value="Settings"/>
</td>
【问题讨论】:
【参考方案1】:试试这个
<td class="options">
@using(Html.BeginForm("RedirectToSettings","Settings"))
<input type="hidden" value="@item.LocationId" />
<input type="submit" value="Settings" />
<td class="options">
【讨论】:
谢谢 Serge,该链接现在将我带到一个错误页面,指出 locationId 为空,这很可能是由于您的解决方案中未设置该值。我尝试将其更改为 value="@ new locationId = item.LocationId ,但这也没有用。 我想通了!如果我将路由值移动到 BeginForm 声明中,它就可以工作。再次感谢 Serge 为我指明了正确的方向。以上是关于MVC5 中 ActionLink 的 HTML 按钮的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 代码中使用 MVC 3 @Html.ActionLink