簡體   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