C# 路由前缀命名限制?

C# 路由前缀命名限制?,c#,asp.net-web-api,C#,Asp.net Web Api,我有一个带有post方法的简单asp.net web api控制器。在该api控制器的顶部,如果我用“sigs”命名RoutePrefix属性,则post操作正在工作;职位 如果我使用诸如“签名”之类的名称命名RoutePrefix属性,则会出现“405代码方法不允许”的运行时错误: POST-->返回405状态代码 如果我使用诸如“签名”之类的名称命名RoutePrefix属性,则会出现运行时错误,出现“400错误请求”: POST-->返回400个错误请求 问题:我不确定“签名”或“

我有一个带有post方法的简单asp.net web api控制器。在该api控制器的顶部,如果我用“sigs”命名RoutePrefix属性,则post操作正在工作;职位

  • 如果我使用诸如“签名”之类的名称命名RoutePrefix属性,则会出现“405代码方法不允许”的运行时错误:
POST-->返回405状态代码

  • 如果我使用诸如“签名”之类的名称命名RoutePrefix属性,则会出现运行时错误,出现“400错误请求”:
POST-->返回400个错误请求

问题:我不确定“签名”或“签名”是键还是反转的单词,带有RESTful查询字符串。它们在url查询字符串中有特殊意义吗?我希望有人愿意为我解释这个问题。先谢谢你

当RoutePrefix命名为“符号””时,以下代码正常工作:

但是,当我使用一些关键字/反转词(?)命名RoutePrefix时,以下代码不起作用,如“签名”、“签名””:

[RoutePrefix("sigs")]
public class SignatureApiController : ApiController
    {
        private readonly ISignatureService _signatureService;

        public SignatureApiController(ISignatureService signatureService)
        {
            _signatureService = signatureService;
        }

        [Route("")]
        [HttpPost]
        public HttpResponseMessage CreateSignature(SignatureFormModel sig)
        {
            var val = _signatureService.Save(sig.ImageData, sig.ContactId);
            return val ? Request.CreateResponse(HttpStatusCode.Created, new { ContactId = sig.ContactId, _signatureService.Result }) : Request.CreateErrorResponse(HttpStatusCode.BadRequest, _signatureService.Result);
        }  
    }
[RoutePrefix("signatures")]
    // [RoutePrefix("signature")]
        // Note: RoutePrefix named "signatures" causes error '405: Method Not Allowed' ; RoutePrefix named "signature"  causes error: '400: Bad Request'
        public class SignatureApiController : ApiController
        {
            private readonly ISignatureService _signatureService;

            public SignatureApiController(ISignatureService signatureService)
            {
                _signatureService = signatureService;
            }

            [Route("")]
            [HttpPost]
            public HttpResponseMessage CreateSignature(SignatureFormModel sig)
            {
                var val = _signatureService.Save(sig.ImageData, sig.ContactId);
                return val ? Request.CreateResponse(HttpStatusCode.Created, new { ContactId = sig.ContactId, _signatureService.Result }) : Request.CreateErrorResponse(HttpStatusCode.BadRequest, _signatureService.Result);
            }  
        }