namespace WebApplication3.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
[HttpPost("test")]
public string test(string username)
{
return "username=" + username;
}
寫了一個簡單的 httpPost 方法test, 編譯運行后無法請求,提示找不到這個地址,但是 httpGet 的方法可以請求,請問是什么原因?
uj5u.com熱心網友回復:
請求地址發一下看看uj5u.com熱心網友回復:
https://localhost:44322/api/values/testuj5u.com熱心網友回復:
HttpPost("test") 中的 test 不是動作別名嗎?[Route("api/[controller]")] 對應的是 api/values ,所以正常不應該是 api/values/test 嗎?
uj5u.com熱心網友回復:
我在 Startup.cs 中把app.UseMvc 改為了 app.UseMvcWithDefaultRoute() 也不行;請求地址為: https://localhost:44322/values/test
uj5u.com熱心網友回復:
username 如何傳參的,傳參層次為表單,路由,url地址uj5u.com熱心網友回復:
UseMvcWithDefaultRoute-》這是在使用mvc是設定的默認路由路徑,建議先大概了解一下mvc與webapi的設定方式。
uj5u.com熱心網友回復:
我現在就是當 mvc 的控制器來用的,已經去掉了標記:[Route("api/[controller]")]
[ApiController]
僅僅使用默認路由模式,寫了一個簡單的 HttpPost 方法,不帶引數的,提示404找不到
uj5u.com熱心網友回復:
請問一下應該如何設定webapi路由呢?
uj5u.com熱心網友回復:
好像可以了
;我用postman測驗就可以呼叫post方法了,之前一直用瀏覽器來除錯的;
---------------------------------------------------------------------------------
之前舊的asp.net mvc 是可以在瀏覽器呼叫post操作的啊,為什么到asp.net core 就不行了呢???
uj5u.com熱心網友回復:
[Route("api/[controller]")]這是呼叫訪問路由控制,你現在規則是"api/控制器名稱",這個只能訪問到控制器,不能訪問控制器里的方法。
把它改成:
[Route("api/[controller]/[action]")]
就可以了,使用
https://localhost:44322/api/values/test
注意:那個 api一定要加,理論上,那個里方寫什么就加什么,
比如:[Route("ppp/[controller]/[action]")],訪問就是:https://localhost:44322/ppp/values/test
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/70716.html
標籤:ASP.NET
