我有以下页面模型方法:
public class CarModel : PageModel
{
public Car Car { get; private set; }
public async Task OnGet(string slug)
{
var client = clientManager.GetClient();
var carPages = await client.GetBySlugAsync();
CarPages= carPages.Items[0];
// if carPages.Items is null, out of range, or if CarPages is null, then return a 404
}
}
剃刀页:
@page "/{slug}"
@model CarModel
@{
ViewData["Title"] = "Some title";
}
<div>Some markup</div>
如果我在CMS中不存在的浏览器中输入一个标签,那么我希望OnGet方法返回404。我该怎么做(最佳实践示例)?
(当前,如果我在浏览器中输入了不存在的子弹,请按回车键,我会收到服务器错误)
在Microsoft文档中未找到有关Razor Pages的任何示例。
答案 0 :(得分:0)
使用返回NotFound
的{{1}}方法:
NotFoundResult
您将需要更改var carPages = await client.GetBySlugAsync();
if(!carPages.Any()) // or whatever the appropriate test is for your data type here
{
return NotFound();
}
else
{
return Page();
}
方法的签名以返回OnGet
:
IActionResult
详细了解可用的public async Task<IActionResult> OnGet(string slug)
类型范围:https://www.learnrazorpages.com/razor-pages/action-results