MVC 3: отображать сообщение проверки вместо «Ошибка сервера в« / «приложении» - PullRequest
0 голосов
/ 03 января 2012

Я создаю сайт, где люди могут комментировать.Работает нормально.но проблема в том, что если вход отсутствует, он отображает «страницу ошибки сервера» с подробностями.Но для пользователей я хочу показать скорее сообщение проверки.(например: - Требуется имя).Как я могу это сделать?

Модель

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 Ответ

0 голосов
/ 03 января 2012

Похоже, вам нужно:

a) Включить проверку на стороне клиента - подробности / опции см. Здесь http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html

b) Проверьте, является ли состояние модели действительным, перед сохранением на стороне сервера:

[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);
    } 
...