我是Razor Pages的新用户,我正在尝试了解如何在页面的OnPostAsync
方法中设置必填字段。具体来说,我有一个绑定对象,需要包含当前用户的ID(来自ASP.NET标识)。我可以在OnPostAsync
中设置此值,但ModelState仍显示为无效。检查返回的错误,似乎没有考虑更新的值
这是我当前的OnPostAsync
方法:
public async Task<IActionResult> OnPostAsync()
{
Upload.Created = DateTime.Now;
Upload.UploaderID = _userManager.GetUserId(User);
if (!ModelState.IsValid)
{
return Page();
}
_context.Uploads.Add(Upload);
await _context.SaveChangesAsync();
return RedirectToPage("./Index");
}
这是Upload
模型的摘录:
public class Upload
{
...
[Required]
public String UploaderID { get; set; }
[ForeignKey("UploaderID")]
public ApplicationUser Uploader { get; set; }
...
}
道歉,如果有一些显而易见的东西我在这里失踪,正如我所说,我是Razor Pages / Entity Framework的新手,我的Google-fu已经让我失望了。
答案 0 :(得分:0)
我在设置UploaderID
之后但在ModelState
检查之前添加以下行解决了问题:
ModelState.Remove("Upload.UploaderID");
这样可以阻止UploaderID
检查其余ModelState
的错误。