繁体   English   中英

.NET 框架 4.6.2 无法命中 POST 端点

[英].NET Framework 4.6.2 Unable to hit POST endpoint

我创建了一个 .NET 框架 4.6.2 WEB API,在我的 AuthController 中创建了一个将接受参数的测试端点。 我无法达到这个终点。 我得到的错误是:“MessageDetail”:“在与名称“Test”匹配的 controller 'Auth' 上找不到任何操作。”

端点:

    [Route("api/auth")]
    [EnableCors(origins: "*", headers: "*", methods: "*")]
    public class AuthController : ApiController, IDisposable
    {
        [HttpPost]
        [Route("Test")]
        public HttpResponseMessage Test([FromBody] object response)
        {
           return Request.CreateResponse(HttpStatusCode.OK, "Success");
        }
     }

我的登录 Function:

function LogIn() {

InputData = {
    UserName: $("#Login_UserName").val(),
    Password: $('#Login_Password').val()
};

console.log($("#Login_UserName").val());
console.log(InputData);

$.ajax({
    type: "post",
    url: 'https://localhost:44393' + '/api/auth/test',
    contentType: 'application/json',
    data: JSON.stringify(InputData),
    success: function (data) {
        HideSmokeLoader();
        console.log(data);
    },
    error: function (request) {
        console.log(request)
    }
});

}

尝试将 controller 中的 Route 属性更改为 RoutePrefix。 所以:

    [RoutePrefix("api/auth")]
    [EnableCors(origins: "*", headers: "*", methods: "*")]
    public class AuthController : ApiController, IDisposable

制作了一个新项目并进行了与您一样的设置。 然后使用 postman 调用端点并得到相同的“未找到操作...”。 Route 属性是 Action 的完整路径 - 因此,如果您要调用 https://localhost:44393/Test,您将到达 controller。

像这样在 Action 本身上添加您的Route -

[EnableCors(origins: "*", headers: "*", methods: "*")]
public class AuthController : ApiController, IDisposable
{
    [HttpPost]
    [Route("api/auth/test")]
    public HttpResponseMessage Test([FromBody] object response)
    {
       return Request.CreateResponse(HttpStatusCode.OK, "Success");
    }
 }

将 [Route("api/auth")] 更改为 [RoutePrefix("api/auth")] 因为 RouteAttribute 放置在 controller 或操作以通过路由直接公开它。 当放置在 controller 上时,它适用于没有任何 System.Web.Mvc.RouteAttribute 的操作。

RoutePrefixAttribute

使用适用于 controller 内所有操作的路由前缀注释 controller。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM