Мои модели имеют некоторые поля, которые не должны быть представлены во взглядах (например, поле Id).Скрытые поля в asp.net mvc
Итак, когда я отправляю форму, эти поля возвращаются с «нулевым» значением, если я не вставляю в скрытые поля в форму.
Есть еще один способ обновить модель, используя только поля в форме?
Мой реальный код:
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create(Profissao model)
{
if (ModelState.IsValid)
{
using (var escopo = Db.Database.BeginTransaction())
{
try
{
if (model.Id == 0)
Db.Profissoes.Add(model);
else
Db.Profissoes.Update(model);
Db.SaveChanges();
escopo.Commit();
return RedirectToAction("Index");
}
catch (Exception)
{
escopo.Rollback();
}
}
}
return View(model);
}
Вы можете восстановить их на стороне сервера? Повторно получить из db, сохранить их в сессии, ...? – Maarten
вы должны использовать ViewModels, иначе вам придется подвергать структуру сущности вашего DB право на поля View - hidden, ViewData и другие потенциально опасные структуры. И вы должны использовать эту ViewModel для сопоставления изменений, сделанных пользователем для вашего объекта СУБД. –
Есть способы связать данные, отправляемые от клиента с желаемым объектом. Вопрос в том, почему бы не полагаться на 'Id'? Это, как правило, самая простая и безопасная ставка ... – haim770