2016-11-29 27 views
5

Asp.net çekirdeğindeki API yollarıyla ilgili birçok konu okuyorum ancak çalışamıyorum.Yolları

Public class BXLogsController : Controller 
{ 
    //[HttpGet("api/[controller]/ID/{id}", Name = "GetL")] 
    public IActionResult GetById(string id) 
    { 
     if (id.Trim() == "") 
      return BadRequest(); 
     else 
     { 
      Logs l = AccessBase.AccBase.GetLog(id); 
      return Json(l); 
     } 
    } 

    //[HttpGet("api/[controller]/API/{apiname}", Name = "GetLAPI")] 
    public IActionResult GetByAPI(string apiname) 
    { 
     if (apiname.Trim() == "") 
      return BadRequest(); 
     else 
     { 
      List<Logs> lstLogs = AccessBase.AccBase.GetLogsApi(apiname); 
      return Json(lstLogs); 
     } 
    } 
} 

I (yorum yapmak bakınız) yolu ile HttpGetAttribute kullanmaya çalıştı ama bu işe yaramazsa:

Birincisi, bu benim denetleyicisi olduğunu.

MapRoute yaklaşımını kullanmak istiyorum ancak bu da çalışmıyor.

app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "LogsId", 
       template: "api/[controller]/ID/{id}", 
       defaults: new { controller = "BXLogs", action = "GetById" }); 

      routes.MapRoute(
       name: "LogsAPI", 
       template: "api/[controller]/API/{apiname}", 
       defaults: new { controller = "BXLogs", action = "GetByAPI" }); 
     }); 

şey unutmuş olmalıyım ama bir şey göremiyorum.

Herkes bana yardım edebilir mi?

+0

yönlendirme özelliğin kadar okuyun. –

cevap

8

Bunu deneyin. Denetleyicide ortak bir yol öneki koyabilirsiniz.

[Route("api/[controller]")] 
public class BXLogsController : Controller { 
    //GET api/BXlogs/id/blah 
    [HttpGet("ID/{id}", Name = "GetL")] 
    public IActionResult GetById(string id) { ... } 

    //GET api/BXlogs/api/blahapi 
    [HttpGet("API/{apiname}", Name = "GetLAPI")] 
    public IActionResult GetByAPI(string apiname) { ... } 
} 

hiçbir yinelenen yolları olmadığından emin olun burada Routing to Controller Actions

+1

Veya bu eğitici: [https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api](https://docs.microsoft.com/en-us/aspnet/core/öğreticiler/birinci web aPI) – paulroho