.NET Core 随笔1:cshtml的 @page 路由模板

发布时间 2023-07-31 16:46:22作者: 牛牛油果
@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}" 不会命中断点