【问题标题】:ASP.NET Core Server Side Validation: System.NullReferenceException [duplicate]ASP.NET Core 服务器端验证:System.NullReferenceException [重复]
【发布时间】:2020-09-03 21:39:28
【问题描述】:

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

[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(),一切都很好,但我没有在客户端上显示错误消息。

微软官方文档只是return Page()。为什么我会收到未处理的异常,以及如何在避免它们的同时保留客户端上的验证错误?

【问题讨论】:

  • 试用了一个小应用。工作正常。除非您在 cshtml 中使用某些对象(即 ViewBag)的某些属性,该属性在返回 Page() 时设置为 null
  • 由于您没有提供详细的代码,我们无法确定问题的原因。建议您将本期涉及的所有代码提供给我们。

标签: c# .net asp.net-core razor .net-core


【解决方案1】:

创建您自己的自定义验证并检查该字段,即该字段是空白还是空。

文档链接:https://docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-5.0 参考这个视频:https://www.youtube.com/watch?v=o_AH2MGti0A

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多