在常规的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
{....}
当我输入重复的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")
任何指针都会有所帮助。
答案 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