MVC 3: отображать сообщение проверки вместо "Ошибка сервера в" / "приложении"
Я создаю сайт, где люди могут комментировать. Работает нормально. но проблема в том, что если вход отсутствует, он отображает "страницу ошибки сервера" с подробностями. Но для пользователей я хочу показать скорее сообщение проверки. (например:- Имя обязательно). Как мне это сделать?
модель
public class Feedback
{
public int FeedbackID { get; set; }
[Required(ErrorMessage="Name is required")]
public string Name { get; set; }
[Required(ErrorMessage = "Today's date")]
[DataType(DataType.Date)]
public DateTime AddedAt { get; set; }
[Required (ErrorMessage="Message is required")]
public string FeedbackMgs { get; set; }
}
public class FeedbackDBContext : DbContext
{
public DbSet<Feedback> Feedbacks { get; set; }
}
контроллер
private FeedbackDBContext FeedbackDB = new FeedbackDBContext();
//
// GET: /Feeback/
public ActionResult Feedback()
{
FeedbackEntries model = new FeedbackEntries();
model.Entries = FeedbackDB.Feedbacks.ToList();
return View(model);
}
[HttpPost]
public ActionResult Feedback (FeedbackEntries fd_model)
{
FeedbackDB.Feedbacks.Add(fd_model.Entry);
FeedbackDB.SaveChanges();
fd_model.Entries = FeedbackDB.Feedbacks.ToList();
return View(fd_model);
}
1 ответ
Похоже, вам нужно:
a) Включить проверку на стороне клиента - см. здесь для получения подробной информации / параметров http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html
б) Проверьте, является ли состояние модели допустимым перед сохранением на стороне сервера:
[HttpPost]
public ActionResult Feedback (FeedbackEntries fd_model)
{
if (ModelState.IsValid)
{
FeedbackDB.Feedbacks.Add(fd_model.Entry);
FeedbackDB.SaveChanges();
fd_model.Entries = FeedbackDB.Feedbacks.ToList();
}
return View(fd_model);
}