我想要一个看起来像的URL:
如果artCatId!= null和tagId == null:
/Article/artCatId/100/pageNumber/2
要么
如果artCatId == null和tagId!= null:
/Article/tagId/200/pageNumber/3
并且如果artCatId!= null和tagId!= null:
/Article/artCatId/100/tagId/200/pageNumber/3
如何创建这个漂亮的URL?
我在项目中使用了ASP.NET Core 3.1。
在控制器中:
public async Task<IActionResult> Index(int? artCatId = null, int? tagId = null, int pageNumber = 1)
{
}
在Startup.cs中:
app.UseEndpoints(endpoints =>
{
// This doesn't work based on my expectation
endpoints.MapControllerRoute(name: "article cat or tag", pattern: "{controller=Article}/{action}/artCatId/{artCatId?}/tagId/{tagId?}/pageNumber/{pageNumber}");
}
一种选择是将多个RouteAtrribute
s放在一个方法上:
[Route("Article/artCatID/{artCatId:int}/tagId/{tagId:int}/pageNumber/{pageNumber:int}")]
[Route("Article/artCatID/{artCatId:int}/pageNumber/{pageNumber:int}")]
[Route("Article/tagId/{tagId:int}/pageNumber/{pageNumber:int}")]
public IActionResult Article(int? artCatId = null, int? tagId = null, int pageNumber = 1)
{
// logic to handle based on passed in values
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句