【问题标题】:MVC 3: display vallidation message instead of "Server Error in '/' Application"MVC 3:显示验证消息而不是“'/'应用程序中的服务器错误”
【发布时间】:2012-02-01 08:53:02
【问题描述】:

我建立了一个人们可以发表评论的网站。 它工作正常。但问题是如果缺少输入,它会显示详细的“服务器错误页面”。但对于用户,我想显示验证消息。 (例如:- 姓名是必需的)。 我该怎么做?

型号

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

【问题讨论】:

  • 首先启用客户端验证,然后在 POST Feedback 操作中检查模型是否有效,并在 ModelState 中返回错误。

标签: asp.net asp.net-mvc-3 validation server-error


【解决方案1】:

看来您需要:

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

【讨论】:

    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    相关资源
    最近更新 更多