【问题标题】:ASP.NET Core 2 Razor Pages/Entity Framework - Set required field on postASP.NET Core 2 Razor 页面/实体框架 - 在帖子中设置必填字段
【发布时间】:2018-10-27 13:08:06
【问题描述】:

我是 Razor 页面的新手,我正在尝试了解如何在页面的 OnPostAsync 方法中设置必填字段。具体来说,我有一个绑定对象,它需要包含当前用户的 ID(来自 ASP.NET Identity)。我可以在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 模型的sn-p:

public class Upload
{
    ...

    [Required]
    public String UploaderID { get; set; }

    [ForeignKey("UploaderID")]
    public ApplicationUser Uploader { get; set; }

    ...
}

如果我在这里遗漏了一些明显的东西,我深表歉意,因为我说我是 Razor 页面/实体框架的新手,我的 Google-fu 让我失望了。

【问题讨论】:

  • 向我们展示您的剃须刀内容。

标签: asp.net razor asp.net-core entity-framework-core razor-pages


【解决方案1】:

我通过在设置UploaderID 之后但在ModelState 检查之前添加以下行解决了这个问题:

ModelState.Remove("Upload.UploaderID");

这会阻止 UploaderIDModelState 的其余部分一起检查错误。

【讨论】:

    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    相关资源
    最近更新 更多