当用户试图输入已存在于数据库中的记录时,我是否可以显示弹出窗口? 现在,当用户提交数据库中已存在的数据时,用户将被重定向到索引视图。 这是当前的代码:
[HttpPost]
public ActionResult Create(Product product)
{
if (ModelState.IsValid)
{
if(DQL.DuplicateCheck(product))
{
// This is what I want to change
return RedirectToAction("Index");
}
else
{
db.Product.Add(product);
db.SaveChanges();
TempData["product_model"] = product;
return RedirectToAction("Product", "Success");
}
}
return View(product);
}
我现在搜索了一段时间,但没有发现任何合适的东西。任何帮助都非常感谢:)
答案 0 :(得分:0)
使用jquery ui对话框可以实现此目的。添加TempData标志以进行复制检查,并使用jQuery在视图中执行相同操作并显示弹出窗口。
[HttpPost]
public ActionResult Create(Product product)
{
TempData["Duplicate"] = null;
if (ModelState.IsValid)
{
if(DQL.DuplicateCheck(product))
{
TempData["Duplicate"] = "Yes";
}
else
{
db.Product.Add(product);
db.SaveChanges();
TempData["product_model"] = product;
return RedirectToAction("Product", "Success");
}
}
return View(product);
}
<div id="dialog-message" title="Message">
<p id="validMessage">
</p>
</div>
$(function () {
$("#dialog-message").dialog({
modal: true,
autoOpen: false,
resizable: false,
width: 400,
buttons: { Ok: function () {
$(this).dialog('close');
}
}
});
var isDuplicate = '@TempData["Duplicate"]';
if(isDuplicate == 'Yes')
{
$("#validMessage").html("Duplicate record found");
$("#dialog-message").dialog('open');
}
}