gpt4 book ai didi

c# - 表单内的 asp-action 不会转到 Controller

转载 作者:行者123 更新时间:2023-11-30 22:55:56 28 4
gpt4 key购买 nike

我有一个表格:

@model TodoItem
<form asp-action="/Todo/AddItem" method="POST">
<label asp-for="Title">Add a new item:</label>
<input asp-for="Title">
<button type="submit">Add</button>
</form>

我在 Index.html 中调用它

@await Html.PartialAsync("AddItemPartial", new TodoItem())

在按钮点击时调用 Controller :

public async Task<IActionResult> AddItem(TodoItem newItem)
{
//code that calls service...
}

我从未在 AddItem 上遇到过断点,我读到它可能是由于 _ViewImports.cshtml 不在同一文件夹中或它没有包含 @addTagHelper 而导致的 asp-action 未触发。尝试了这些解决方案,但没有奏效。

如有任何帮助,我们将不胜感激。

最佳答案

我认为当你使用 asp-action 时,你应该只指定 Action 名称而不是完整路径。

例如。如果以下是您页面中的代码:

<form asp-controller="Demo" asp-action="Register" method="post">
<!-- Input and Submit elements -->
</form>

此代码转换为以下代码:

<form method="post" action="/Demo/Register">
<!-- Input and Submit elements -->
<input name="__RequestVerificationToken" type="hidden" value="<removed for brevity>" />
</form>

请检查服务器端代码转换为HTML后,没有asp-action,只有HTML表单可以理解的action属性。

对于您来说,您必须将代码更改为:

@model TodoItem
<form asp-controller="Todo" asp-action="AddItem" method="POST">
<label asp-for="Title">Add a new item:</label>
<input asp-for="Title">
<button type="submit">Add</button>
</form>

希望这对您有所帮助。

关于c# - 表单内的 asp-action 不会转到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54845089/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com