多个put方法在本地iis中有效,但在直播服务器中不起作用。
Webapi Config:
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "ApiById",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ApiByName",
routeTemplate: "api/{controller}/{action}/{name}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ApiByAction",
routeTemplate: "api/{controller}/{action}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ApiByActionName",
routeTemplate: "api/{controller}/{action}/{id}/",
defaults: new { id = RouteParameter.Optional }
);
[HttpPut]
public async Task<int> DeleteCity(Guid? Id)
{
City updateCity = await db.City.Where(x => x.Id == Id).FirstOrDefaultAsync();
updateCity.IsActive = 0;
await db.SaveChangesAsync();
return 1;
}
[HttpPut]
[Route("api/city/DeleteCitys/{Id}")]
public async Task<int> DeleteCitys(Guid? Id)
{
City updateCity = await db.City.Where(x => x.Id == Id).FirstOrDefaultAsync();
updateCity.IsActive = 1;
await db.SaveChangesAsync();
return 3;
}
http://freedompg.softwarecubes.com/api/city/76F84F4C-22C8-4EF8-B593-B3605CF9AD14
输出:1正确
http://freedompg.softwarecubes.com/api/city/DeleteCitys/76F84F4C-22C8-4EF8-B593-B3605CF9AD14
输出:1错误(调用上一个函数)
发布于 2019-05-31 12:00:41
你的代码应该是这样的。您还需要有DeleteCity的路由
[HttpPut]
[Route("api/city/{Id}")]
public async Task<int> DeleteCity(Guid? Id)
{
City updateCity = await db.City.Where(x => x.Id == Id).FirstOrDefaultAsync();
updateCity.IsActive = 0;
await db.SaveChangesAsync();
return 1;
}
[HttpPut]
[Route("api/city/DeleteCitys/{Id}")]
public async Task<int> DeleteCitys(Guid? Id)
{
City updateCity = await db.City.Where(x => x.Id == Id).FirstOrDefaultAsync();
updateCity.IsActive = 1;
await db.SaveChangesAsync();
return 3;
}
发布于 2019-10-09 15:55:27
为什么不对控制器使用RoutePrefix
,对方法使用Route
呢
[RoutePrefix("api/City")]
public class CityController : Controller
{
[HttpPut]
[Route("DeleteCitys")]
public async Task<int> DeleteCitys(Guid[] Id)
{
// Your Code
}
[HttpPut]
[Route("DeleteCitys/{Id}")]
public async Task<int> DeleteCitys(Guid? Id)
{
// Your Code
}
}
https://stackoverflow.com/questions/56357975
复制相似问题