C# 如何通过主键删除记录?使用WebAPI2。得到404
我不熟悉使用web api。。我正在使用一些角度代码。添加和列出数据可以正常工作,但不能删除数据。我尝试了stackoverflow添加web配置的很多东西,我的cors设置为允许所有站点,因为这只是为了测试 这是我的密码。。我不知道我错过了什么C# 如何通过主键删除记录?使用WebAPI2。得到404,c#,entity-framework,asp.net-web-api,C#,Entity Framework,Asp.net Web Api,我不熟悉使用web api。。我正在使用一些角度代码。添加和列出数据可以正常工作,但不能删除数据。我尝试了stackoverflow添加web配置的很多东西,我的cors设置为允许所有站点,因为这只是为了测试 这是我的密码。。我不知道我错过了什么 [HttpDelete] // I also tried HttpPut [Route("products/RemProduct")] public string RemoveProduct(int prodId) { if (p
[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;
}
这是我尝试的web配置
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"> <-- added this too.
</modules>
<security>
<requestFiltering>
<verbs>
<add verb="Delete" allowed="true" /> <<-- added this
</verbs>
</requestFiltering>
</security>
</system.webServer>
您需要跟踪要删除的条目,因此请尝试使用此
using (ProductContext dataContext = new ProductContext())
{
var removeProd = dataContext.ProductData.Where(a => a.Id == prodId).FirstOrDefault();
dataContext.ProductData.Remove(removeProd);
dataContext.SaveChanges();
return "Product Removed";
}
还需要匹配查询参数
this.DeleteProd = function (prodId) {
var response = $http({
method: "DELETE",
url: "https://apirepo.leofaj.org/products/RemProduct",
params: {
prodId: prodId
},
// data:prodId,
//dataType:"json"
});
return response;
}
您需要跟踪要删除的条目,因此请尝试使用此
using (ProductContext dataContext = new ProductContext())
{
var removeProd = dataContext.ProductData.Where(a => a.Id == prodId).FirstOrDefault();
dataContext.ProductData.Remove(removeProd);
dataContext.SaveChanges();
return "Product Removed";
}
还需要匹配查询参数
this.DeleteProd = function (prodId) {
var response = $http({
method: "DELETE",
url: "https://apirepo.leofaj.org/products/RemProduct",
params: {
prodId: prodId
},
// data:prodId,
//dataType:"json"
});
return response;
}
查询参数的名称应与操作的参数完全相同
url: "https://apirepo.leofaj.org/products/RemProduct",
params: {
prodId: prodId // <-- Change this
},
url:https://apirepo.leofaj.org/products/RemProduct",
参数:{
prodId:prodId/查询参数的名称应与操作的参数完全相同
url: "https://apirepo.leofaj.org/products/RemProduct",
params: {
prodId: prodId // <-- Change this
},
url:https://apirepo.leofaj.org/products/RemProduct",
参数:{
prodId:prodId/使用与控制器/api上使用的参数相同的参数
就像上面的答案一样,将prodId作为变量传递,那么源值就无关紧要了。使用与控制器/api相同的参数
像上面的答案一样,将prodId作为变量传递,那么源值就无关紧要了。如果(prodId!=null)
,OT的可能重复-这将始终是真的,int
不能为null。@ste fu检查我的答案。.我使用了那个解决方案。.我的问题是它仍然不起作用。OT的可能重复如果(prodId!=null)
-这将始终是真的,int
不能为null。@ste fu检查我的答案。.我使用了该解决方案。.我的问题是它仍然不起作用。