问题描述
我在Razor页面中遇到此问题:
我的OnPost:
public IActionResult OnPost()
{
if (!ModelState.IsValid)
return Page();
//Todo Add Permission
Role.IsDelete = false;
int roleId = _permissionService.AddRole(Role);
return RedirectToPage("Index");
}
我的方法:
public int AddRole(Role role)
{
_context.Roles.Add(role);
_context.SaveChanges();
return role.RoleId;
}
和MyTable:
[Key]
public int RoleId { get; set; }
[display(Name = "")]
[required(ErrorMessage = "لطفا {0} را وارد کنید!!!")]
[MaxLength(50,ErrorMessage = "{0} نمیتواند بیشتر از {1} کاراکتر باشد!!!")]
public string RoleName { get; set; }
public bool IsDelete { get; set; }
解决方法
问题是您将DisplayAttribute.Name
设置为空字符串-错误本身是误导的 bit ,因为它不是null
,而是用string.IsNullOrEmpty
here
因此,要么将其设置为非空字符串,要么完全删除属性(没有值就没有值,因此是例外!),它应该可以工作。
顺便说一句,您应该从异常中读取堆栈跟踪,而不仅仅是消息-它提供了上下文以及开始查找问题的具体位置。