C# 对删除api的调用在Postman上不起作用
GET/POST/PUT,api调用在Postman上工作 普通删除或自定义删除不适用 a。定期删除 邮递员的URL呼叫-http://localhost:59510/api/Employee/123 邮差错误-C# 对删除api的调用在Postman上不起作用,c#,json,http,asp.net-web-api,postman,C#,Json,Http,Asp.net Web Api,Postman,GET/POST/PUT,api调用在Postman上工作 普通删除或自定义删除不适用 a。定期删除 邮递员的URL呼叫-http://localhost:59510/api/Employee/123 邮差错误- { "Message": "No HTTP resource was found that matches the request URI 'http://localhost:59510/api/Employee/123'.",
{
"Message": "No HTTP resource was found that matches the request URI 'http://localhost:59510/api/Employee/123'.",
"MessageDetail": "No action was found on the controller 'Employee' that matches the request."
}
代码:
b。自定义删除
邮递员的URL呼叫-http://localhost:59510/api/Employee/DeleteEmployee/123
邮递员错误-404错误
[Route("api/Employee/DeleteEmployee")]
[HttpDelete]
public string DeleteEmployee(int empID)
{
try
{
string sSQL = $@"DELETE dbo.Employee WHERE emp_id='{empID}'";
DataTable dt = new DataTable();
using (var connStr = new SqlConnection(ConfigurationManager.ConnectionStrings["WebAPIConn"].ConnectionString))
{
using (var cmd = new SqlCommand(sSQL, connStr))
{
using (var da = new SqlDataAdapter(cmd))
{
cmd.CommandType = CommandType.Text;
da.Fill(dt);
}
}
}
return "Deleted Successfully From EMPLOYEE table!!";
}
catch
{
return "Failed to Delete From EMPLOYEE table";
}
}
尝试将
empID
添加到路由
[Route("api/Employee/DeleteEmployee/{empID}")]
[HttpDelete]
public string DeleteEmployee(int empID)
你试过[Route(“api/Employee/DeleteEmployee/{emdID}”)]吗?你能发布你的整个控制器代码吗?您是否在自定义删除中使用postman中的删除动词?如果您为“api/Employee”的控制器定义了一个路由,那么方法上的路由应该是“DeleteEmployee”,否则自定义删除方法的实际路由是“api/Employee/api/Employee/DeleteEmployee”。注意,不要这样做:
string sSQL=$@“delete dbo.Employee WHERE emp_id='{Employee}”
特别是如果有一天你制作了一个带有字符串empID
的控制器-我认为问题是由于属性名。它应该是id而不是empId。如果您想使用empId,请确保使用属性路由并定义与上述变量名匹配的路径。FWIW,您的URI包含术语“delete”这一事实意味着您的URI设计需要改进:-)。Krishna/Hans-非常感谢。[Route(“api/Employee/DeleteEmployee/{empId}”)]确实有效。Grad它对您有效。。你可以把这当作一个答案
[Route("api/Employee/DeleteEmployee/{empID}")]
[HttpDelete]
public string DeleteEmployee(int empID)