Skip to main content
 首页 » 编程设计

c#之如何通过主键删除一条记录使用 web api 2. 获取 404

2024年01月31日22davidwang456

我刚开始使用 web api。我正在使用一些角度代码。添加和列出数据工作正常,但不能删除它。我尝试了很多来自 stackoverflow 添加 Web 配置的东西,我将我的 cors 设置为允许所有站点,因为这只是为了测试。

这是我的代码..我不知道我错过了什么

[HttpDelete]       // I also tried HttpPut  
[Route("products/RemProduct")] 
public string RemoveProduct(int prodId) 
{ 
    if (prodId != null) 
    { 
        using (ProductContext dataContext = new ProductContext())  // I tried removing this using 
        { 
            // this was the my original code 
            //var removeProd = new ProductTest { Id = prodId }; 
            //dataContext.ProductData.Remove(removeProd); 
 
            // used this as my alternative 
            dataContext.Database.ExecuteSqlCommand("DELETE FROM ProductTest where Id = " + prodId);  
 
            //dataContext.SaveChanges(); 
            return "Product Removed"; 
        } 
    } 
 
    return "Invalid"; 
} 

这是角度服务部分

    this.DeleteProd = function (prodId) { 
    var response = $http({ 
        method: "DELETE", 
        url: "https://apirepo.leofaj.org/products/RemProduct",  
         params: { 
             Id: prodId 
         }, 
      //  data:prodId, 
        //dataType:"json" 
    }); 
    return response; 
} 

这是我试过的网络配置

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true">  <-- added this too. 
    </modules> 
    <security> 
        <requestFiltering> 
            <verbs> 
                <add verb="Delete" allowed="true" /> <<-- added this 
            </verbs> 
        </requestFiltering> 
    </security> 
</system.webServer> 

这是我遇到的错误

DELETE https://apirepo.leofaj.org/products/RemProduct?Id=13 404 ()

我真的不知道为什么添加数据与 put 一起工作,然后我尝试了 put 请求并使用原始 sql..这在本地服务器上运行.. 2 个单独的 iis 网站。

我尝试了从建议的副本中发布的解决方案,您可以从我的示例中看到它。我的问题的答案是因为我不知道我必须传递与我的操作参数相同的参数名称。

谢谢

请您参考如下方法:

查询参数的命名应与操作的参数完全相同。

url: "https://apirepo.leofaj.org/products/RemProduct",  
params: { 
    prodId: prodId      // <-- Change this 
},