Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# 将值从表单标记传递到操作方法无效_C#_Html_Asp.net Mvc - Fatal编程技术网

C# 将值从表单标记传递到操作方法无效

C# 将值从表单标记传递到操作方法无效,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,我有一个输入类型为number的表单,我想选择一个数字,按Submit并从数据库中删除特定行 输入类型如下所示: <input type="number" name="id" value=""/> 您应该在方法中添加属性[HttpPost]: [HttpPost] public IHttpActionResult Delete(int id) 并从表单操作中删除id: <form action="http://localhost:51206/api/Values/del

我有一个输入类型为
number
的表单,我想选择一个数字,按Submit并从数据库中删除特定行

输入类型如下所示:

<input type="number" name="id" value=""/>  

您应该在方法中添加属性
[HttpPost]

[HttpPost]
public IHttpActionResult Delete(int id)
并从表单操作中删除
id

<form action="http://localhost:51206/api/Values/delete" method="post">

您应该在方法中添加属性
[HttpPost]

[HttpPost]
public IHttpActionResult Delete(int id)
并从表单操作中删除
id

<form action="http://localhost:51206/api/Values/delete" method="post">

从url中删除
'/id'
,将其简化,并在文本框中使用
id属性
,它将绑定

查看

<form action="api/Values/Delete" method="post">
    <fieldset>
        <div style="text-align: center">
            DELETE
            <input type="number" id="id" value=""/>
            <input type="submit" value="Submit"/>
        </div>
    </fieldset>
</form> 

从url中删除
'/id'
,将其简化并在文本框中使用
id属性
,它将绑定

查看

<form action="api/Values/Delete" method="post">
    <fieldset>
        <div style="text-align: center">
            DELETE
            <input type="number" id="id" value=""/>
            <input type="submit" value="Submit"/>
        </div>
    </fieldset>
</form> 

@mjwills在我选择表单中的数字4后,它说id=4为什么不将您的路线更改为-您无论如何都不希望它成为id的get(除非您在该页面上加载特定于id的内容),所以您应该传递整个表单模型through@mjwills在我选择了表格中的4号之后,它说id=4为什么不将您的路由更改为-无论如何,您都不希望它成为id的get(除非您在该页面上加载特定于id的内容),因此您应该只传递整个表单模型,因为您已经有了一个具有[HttpPost]的方法属性,它告诉我有错误。一个同名的方法
Delete
?@ZvonePandza j是正确的,你应该有
[HttpPost]
或者…实际上…
[HttpDelete]
id
不应该是
action=“…”
中路径的一部分(MVC的默认路由将根据需要将
id
参数映射到最后一个元素)。简言之:正确执行此操作并修复您可能在别处遇到的任何错误。这不是“正统”的,但有效。因为html不是restful(您不能将method=“delete”传递给表单)。您可以使用(即)一个ajax请求作为$.ajax({url:'/api/values',键入:'DELETE'})获得更清晰的结果;我已经有一个方法具有[HttpPost]属性,因此它告诉我有错误。一个名称相同的方法
Delete
?@ZvonePandza j是正确的,您应该有
[HttpPost]
或者…实际上…
[HttpDelete]
id
不应该是
action=“…”
中路径的一部分(MVC的默认路由将根据需要将
id
参数映射到最后一个元素)。简言之:正确执行此操作并修复您可能在别处遇到的任何错误。这不是“正统”的,但有效。因为html不是restful(您不能将method=“delete”传递给表单)。您可以使用(即)一个ajax请求作为$.ajax({url:'/api/values',键入:'DELETE'})获得更清晰的结果;