添加帖子时模型无效

时间:2019-02-19 19:45:35

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

我有一个Razor页面,其中提交了MyUser的大多数必填字段,但是,有些字段我想在添加到数据库之前手动创建。

public async Task<IActionResult> OnPostAsync()
{
    //Other MyUser attributes set using form
    MyUser.Date = DateTime.Now;
    MyUser.Name = User.Identity.Name;
    MyUser.Details = "Sort This";

    if (!ModelState.IsValid)
    {
        return Page(); //Claims MyUser.Details is null
    }

    _context.User.Add(MyUser);
    await _context.SaveChangesAsync();

    return RedirectToPage("./Index");
}

我的问题是,当调用!ModelState.IsValid时,它说MyUser.Details为null并且失败。如您所见,MyUser.Details设置在上方(应该为字符串)。这样设置DateName没问题。

1 个答案:

答案 0 :(得分:0)

已通过评论回答:

绑定MyModel作为绑定属性,而不是将它绑定到一个ViewModel(这实际上只是一个不同的类型,仅带有表单提供的字段),然后将其映射到任何MyUser。您可以检查ModelState的用户输入以确保其有效。