Предельные поля, доступные для редактирования с использованием страниц Razor и Entity Framework CORE с ViewModel - PullRequest
1 голос
/ 06 марта 2019

Класс пользователя

public class MyUser {
    public string Forename { get; set; }
    public string Surname { get; set; }
    public string PWD { get; set; }
}

Страница редактирования пароля

    public class EditPasswordModel : PageModel {

        [BindProperty]
        public UserMain objRecord { get; set; }

        public async Task<IActionResult> OnGetAsync() {
            objRecord = await _context.MyUser
                .SingleOrDefaultAsync(m => m.UserID == 666);
            return Page();
        }

        public async Task<IActionResult> OnPostAsync() {

            _context.Attach(objRecord).State = EntityState.Modified;
            await _context.SaveChangesAsync();
            return RedirectToPage("./Index");
        }
    }

На этой странице смены пароля я хочу обновить только поле PWD.Возможность перезагрузить запись из таблицы в OnPostAsync() и затем скопировать все в objRecord, за исключением PWD, работает, но чувствует себя неправильно и расточительно.

Я использовал ViewModels, чтобы расширить то, что принесено в View, объединяя классы, которые будут использоваться в представлении, например, но есть ли способ использовать ViewModel для ограничения доступных полей?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...