首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Web api C#中使用多个PUT函数

如何在Web api C#中使用多个PUT函数
EN

Stack Overflow用户
提问于 2019-05-29 18:04:06
回答 2查看 42关注 0票数 0

多个put方法在本地iis中有效,但在直播服务器中不起作用。

代码语言:javascript
运行
复制
         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错误(调用上一个函数)

EN

Stack Overflow用户

发布于 2019-10-09 15:55:27

为什么不对控制器使用RoutePrefix,对方法使用Route

代码语言:javascript
运行
复制
[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
    }
}
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56357975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档