在MVC 4中回发错误

时间:2016-05-06 19:54:13

标签: asp.net-mvc-4

在常规的Asp.Net中,当你想发布一个错误时,例如,一个重复的ID,我使用Panels来控制,错误消息标签等。我想知道,如何使用MVC 4实现相同的目标。< / p>

目前,在我的索引页面上,我有一个ID,名称&amp;地址列和提交按钮。我的HTTPPOST ActionResult在这里:

 [HttpPost]
    public ActionResult Index(Person p)
    {
        if (ModelState.IsValid)
        {
            PersonInfo pi = new PersonInfo();

            var duplicate = from d in db.PersonInfoes
                where d.Id == p.Id
                select d;

            if (duplicate.Any())
            {
                return View("Duplicate");
            }
            else
            {....}

enter image description here

当我输入重复的Id时,在提交页面时,我需要发布到同一个视图(“索引”)页面,让用户知道已经存在ID,但是目前,我正在重定向到不同的视图让用户知道重复,我不认为这是正确的方法。我正在学习MVC,顺便说一句,因此怀疑。我的重复cshtml在这里:

    @{
       ViewBag.Title = "Duplicate";
     }

     <h2>Duplicate</h2>

     <h3>Duplicate ID found !!</h3>
     <p>Please correct the ID and re-enter !</p>
     <br/><br/>
     @Html.ActionLink("Back to Data Entry","Index")

enter image description here

任何指针都会有所帮助。

1 个答案:

答案 0 :(得分:1)

您可以返回相同的视图。您应该考虑向模型状态字典添加错误,以便在UI中显示该错误。

font-family

只需确保在索引视图中调用[HttpPost] public ActionResult Index(Person p) { if (ModelState.IsValid) { var duplicate= db.PersonInfoes.Where(s=>s.Id== p.Id); if (duplicate.Any()) { ModelState.AddModelError(string.Empty,"Duplicate found"); return View(p); } // to do : Your existing code } return View(p); } 方法即可显示此错误消息。

ValidationSummary