在我的网站上,我通过使用slug使我的网址更加友好。我想通过更改
来使与分页相关的网址信息更加友好 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'之前是无效的细分'页面 - '
答案 0 :(得分:1)
我在配置方法
中的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)
这取决于您是否需要使用属性路由。
答案 1 :(得分:0)
您可以考虑使用带约束的可选参数,然后解析参数以获取页码
//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
}