Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表单内的asp操作不';不要去控制器_C#_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

C# 表单内的asp操作不';不要去控制器

C# 表单内的asp操作不';不要去控制器,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我有一张表格: @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> 在单击按钮时调用控

我有一张表格:

@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>
在单击按钮时调用控制器:

public async Task<IActionResult> AddItem(TodoItem newItem)
{ 
  //code that calls service...
}
公共异步任务附加项(TodoItem newItem)
{ 
//调用服务的代码。。。
}
我从未在AddItem上遇到过断点,我读到它可能来自asp操作未触发,因为_ViewImports.cshtml不在同一文件夹中,或者它不包含@addTagHelper。尝试了这些解决方案,但没有成功


任何帮助都将不胜感激。

我认为当您使用asp操作时,您应该只指定操作名称,而不是完整的路径

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

<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操作,只有HTML表单可以理解的操作属性

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

@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>
@model-TodoItem
添加新项目:
添加

希望这有帮助。

不幸的是,当我将Todo放入asp控制器时,它返回一个404,如果我将全名放入TodoController,它与以前一样,它适用于其他控制器,只是不适用于此,所以问题出在其他地方,这对我有帮助,谢谢,这是来自控制器中的参数,关于这个问题,我提出了一个单独的问题,很高兴它有所帮助。如果你能看一看更详细的问题,那就太好了,谢谢你
@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>