Ich lerne Web-API. gerade durch einige Artikel gegangen und gefunden Attribut Routing kann auf andere Weise erfolgen.Web-API: andere Art der Attribut-Routing
- https://www.codeproject.com/Articles/774807/Attribute-Routing-in-ASP-NET-MVC-WebAPI
- http://www.c-sharpcorner.com/UploadFile/b1df45/web-api-route-and-route-prefix-part-2/
- https://www.codeproject.com/Articles/999691/RESTful-Day-sharp-Custom-URL-Re-Writing-Routing-us
den Code Siehe verwendet:
[RoutePrefix("Movie")]
public class HomeController : Controller
{
//Route: Movie/Index
[Route]
public ActionResult Index()
{
ViewBag.Message = "You are in Home Index";
return View();
}
//Route: NewRoute/About
[Route("~/NewRoute/About")]
public ActionResult About()
{
ViewBag.Message = "You successfully reached NEWRoute/About route";
return View();
}
}
in obigem Beispiel der Autor Attribut Route die Route für Aktion zu definieren.
sehen diese eine wieder
[GET("productid/{id?}")]
public HttpResponseMessage Get(int id)
{
var product = _productServices.GetProductById(id);
if (product != null)
return Request.CreateResponse(HttpStatusCode.OK, product);
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "No product found for this id");
}
Hier der Autor nicht Route Attribut eher http Verben verwenden Route zu definieren.
Also sag mir, welcher Ansatz richtig ist?
Eine weitere Frage, die durch Attribut-Routine können wir einen anderen Namen für die Aktion dann geben, wenn man Action Name Attribut verwenden sollte, um der Aktion einen anderen Namen zu geben?
Wenn wir Aktion Name durch Attribut-Routing ändern können, warum sollte man Action Name Attribut verwenden, um der Aktion einen anderen Namen zu geben?
Sie können auch das [HttpGet] Attribut verwenden, um http Verb zu definieren. Ich benutze das und [Route()], weil ich den Namen der Aktionsmethode im Routing habe, imo, das die beste Lesbarkeit bietet, aber Unordnung verursacht. – Thor