我是 c# 和 web api 的新手。我有一個帶有 Get 方法的 WebAPI 控制器,如下所示: public class peopleController : ApiController { [HttpGet] public IHttpActionResult getAllPeople(string Name, string Age) { //Return something } }我的 WebApiConfig 是這樣的:config.Routes.MapHttpRoute( name: "getAllPeopleApi", routeTemplate: "people", defaults: new { controller = "people", action = "getAllPeople" } );如果我這樣調(diào)用我的網(wǎng)址:http://localhost:xxx/people?Name=&Age=。它工作正常。但是當(dāng)我像所有這些一樣調(diào)用時 :http://localhost:xxx/people,,,http://localhost:xxx/people?Name=http://localhost:xxx/people?Age=我收到此錯誤消息:{"Message":"No HTTP resource was found that matches the request URI 'http://localhost:xxxx/......'.","MessageDetail":"No action was found on the controller 'people' that matches the request."}我嘗試設(shè)置我的routeTemplate: "people/{Name}/{Age}". 現(xiàn)在當(dāng)我運行這個 web apiError 404.0 Not Found
2 回答

狐的傳說
TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊
routeTemplate: "people/{Name}/{Age}"
這部分不是 QueryString,這是一個動態(tài)路徑。這意味著你的路徑變成Domain/people/SomeName/SomeAge?QueryString=Whatever

動漫人物
TA貢獻(xiàn)1815條經(jīng)驗 獲得超10個贊
設(shè)法通過顯式設(shè)置參數(shù)Name和Ageto來解決這個問題Null。
public class peopleController : ApiController
{
[HttpGet]
public IHttpActionResult getAllPeople(string Name = null, string Age=null)
{
//Return something
}
}
這將使參數(shù)成為可選參數(shù)?,F(xiàn)在您可以使用或不使用查詢字符串參數(shù)來調(diào)用控制器。
- 2 回答
- 0 關(guān)注
- 209 瀏覽
添加回答
舉報
0/150
提交
取消