在我的网站上,我通过使用 slug 使我的网址总体上更加友好。我也想通过更改使与分页相关的 url 信息更加友好
www.example.com/controller/action/1 // 1 represents the page
自
www.example.com/controller/action/page-1
我不在乎这是否不可能,但这是可取的。
我试图用
[Route("action/page-{pagina?}")]
public IActionResult Action(int page= 1)
导航时获取此内容。
可选参数"page">前面有一个无效的段"page-">
我已经在配置方法的Startup.cs
中成功地完成了此操作
app.UseMvc(routes => {
/* code removed for brevity */
routes.MapRoute(
name: "RouteName",
template: "action/page-{pageNumber}",
defaults: new { Controller = "YourController", Action = "Action" }
);
});
然后,您的控制器将是...
public IActionResult Action(int page= 1)
这取决于是否需要使用属性路由。
您可以考虑使用带有约束的可选参数,然后分析该参数以获取页码
//Matches action
//Matches action/page-1
[Route("action/{page:regex(^page-d$)?}")]
public IActionResult Action(string page = "page-1") {
//... parse page
// page number = page.Replace("page-", "");
// then int.Parse() page number
}