C# ASP.NET核心服务器端验证:System.NullReferenceException

C# ASP.NET核心服务器端验证:System.NullReferenceException,c#,.net,asp.net-core,razor,.net-core,C#,.net,Asp.net Core,Razor,.net Core,在我的实体模型中,我有一个必需的属性: [Required] public string Occupation { get; set; } 我有一个OnPostAsync方法,如果用户提交了无效信息,它将返回页面 if (!ModelState.IsValid) { return Page(); } 如果禁用javascript(运行服务器端验证)并提交一个带有空白占用字段的表单,则会出现以下错误: An unhandled exception has occurred while ex

在我的实体模型中,我有一个必需的属性:

[Required]
public string Occupation { get; set; }
我有一个
OnPostAsync
方法,如果用户提交了无效信息,它将返回页面

if (!ModelState.IsValid)
{
  return Page();
}
如果禁用javascript(运行服务器端验证)并提交一个带有空白占用字段的表单,则会出现以下错误:

An unhandled exception has occurred while executing the request.
System.NullReferenceException: Object reference not set to an instance of an object.
如果我返回
RedirectToPage()
,一切正常,但我没有在客户端上显示错误消息


官方的microsoft文档只是
返回页面()
。为什么会出现未处理的异常,以及如何在避免错误的同时保留客户端上的验证错误?

创建自己的自定义验证并检查字段,即字段是否为空

文档链接:
请参阅此视频:

尝试了一个小应用程序。很好。除非您在cshtml中使用某个对象(即ViewBag)的某些属性,该属性在返回Page()时设置为null,因为您没有提供详细的代码,否则我们无法确定问题的原因。我建议您向我们提供该问题涉及的所有代码的参考。