C# 对删除api的调用在Postman上不起作用

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'.",

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'.",
    "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)