Недопустимая модель при добавлении в сообщение - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть страница 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 было установлено выше (это должна быть строка).У меня нет проблем с настройкой Date или Name таким образом.

1 Ответ

0 голосов
/ 21 февраля 2019

Ответ на комментарий:

Вместо того, чтобы иметь MyUser в качестве свойства привязки, связать ViewModel (который на самом деле просто означает другой тип только с полями, предоставленными формой), а затем сопоставить его с любым MyUserявляется.Вы можете проверить ModelState для пользовательского ввода, чтобы убедиться, что он действителен.

...