我正在使用 ASP.NET Core 2.2。
我正在尝试使用用 asp 标签助手装饰的提交按钮将 ID(Guid)从我的视图传递到我的控制器 Index,如下所示:
<input type="submit" value="Go" asp-controller="MyController" asp-action="Index" asp-route-id="@Model.Id" />
我的控制器操作方法如下所示:
public IActionResult Index(Guid id)
{
return View();
}
单击提交按钮时,id 始终以 Guid.Empty 形式出现。
我已切换为使用具有相同标记帮助器值的锚标记,并且 id 已正确填充:
<a asp-controller="MyController" asp-action="Index" asp-route-id="@Model.Id">Go</a>
我可以通过将锚点设计为看起来像按钮来解决这个问题,但为了理解,有人可以解释为什么锚点可以在这种情况下工作,而提交按钮则不行吗?
已更新(使用生成的 HTML)
带提交的 HTML
<form>
<div class="d-flex">
<input type="submit" value="Go" formaction="" />
</div>
</form>
带锚点的 HTML
<form>
<div class="d-flex">
<a href="/MyController?Id=2590bc68-6784-4174-90f5-e7ceb1b4d0e9">Go</a>
</div>
</form>
幕布斯7119047
相关分类