.NET Core 随笔1:cshtml的 @page 路由模板
@page "{id:int}"
网址路由接受且只可接受int类型的id
例如:http://url/Movies/Details/id => https://localhost:7290/Movies/Details/1
若id为空,默认返回404
------------------
@page "{id:int?}"
网址路由可接受int类型的id或者为空
例如:http://url/Movies/Details/id => https://localhost:7290/Movies/Details/1
若id为空,可在代码中做额外处理,或者返回自定义页面。
public async Task<IActionResult> OnGetAsync(int? id) { if (id == null || _context.Movie == null) { //在此处做自定义返回 //return NotFound(); } var movie = await _context.Movie.FirstOrDefaultAsync(m => m.Id == id); if (movie == null) { return NotFound(); } else { Movie = movie; } return Page(); }
通俗点就是在id为空的情况下 @page "{id:int?}" 在OnGetAsync打断点,会命中断点,@page "{id:int}" 不会命中断点