[HttpGet, Route("products/{categoryName}")]
public IActionResult GetProductsByCategoryName(string categoryName) {
... code to retrieve products by category name
是做這件事,我更喜歡至少的方式。當您訪問路線/products/nine-millimeter-handguns
時,則在您的操作中,categoryName
變量的值將爲nine-millimeter-handguns
。然後,您可以使用該字符串值查找該類別中的所有產品並將其返回給客戶端。
另一種方法是在Startup.cs的全局路由配置中。因爲它使航線更接近控制器&行動,他們映射到
public void Configure(IApplicationBuilder app) {
...
app.UseMvc(routes => {
routes.MapRoute(null, "products/{categoryName}", new {
controller = "Products", action = "GetProductsByCategoryName"
});
});
}
我更喜歡前者屬性的方法:如果你這樣說,你不需要在操作方法的[Route]
屬性。但兩者都會完成同樣的事情。
爲了呈現一個鏈接從視圖這條路線,你會通過在categoryName
到ActionLink的HTML輔助方法:
@Html.ActionLink(item.Category, item.Category, new {
categoryName = "nine-millimeter-handguns"
})
MVC哪個版本您使用的? – danludwig
MVC版本6.0 – PsychoCoder