У меня есть класс, который имеет 8 реквизитов / 8 столбцов в БД. Но на странице редактирования я не хочу показывать поле AddedDate или UserID, так как я не хочу, чтобы пользователь изменил его.
public class Voucher
{
public int ID { get; set; }
public string Title { get; set; }
public string SiteName { get; set; }
public string DealURL { get; set; }
public DateTime AddedDate { get; set; }
public DateTime? ExpirationDate { get; set; }
public string VoucherFileURL { get; set; }
public Guid UserID { get; set; }
}
Вот что у меня есть для контроллера Edit:
// POST: /Voucher/Edit/5
[HttpPost]
public ActionResult Edit(Voucher voucher)
{
if (ModelState.IsValid)
{
string[] excludeProperties = { "AddedDate", "UserID" };
UpdateModel(ModelState, "", null, excludeProperties);
db.Entry(voucher).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(voucher);
}
На странице «Правка» после нажатия кнопки «Отправить» я получил следующую ошибку: System.Data.SqlServerCe.SqlCeException: при преобразовании в datetime произошло переполнение.
Похоже, добавленная дата не была исключена из модели представления и вызвала ошибку.
Пожалуйста, дайте мне знать, как это исправить? Спасибо!
public ActionResult Edit([Bind(Exclude = "AddedDate")]Voucher voucher)
тоже не повезло