0

无论如何,当用户尝试输入数据库中已经存在的记录时,我可以显示一个弹出窗口吗?现在,当用户提交数据库中已经存在的数据时,他将被重定向到索引视图。这是当前代码:

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

我现在搜索了一段时间,但没有找到任何合适的东西。非常感谢任何帮助:)

4

1 回答 1

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

Create.cshtml 或 CreateView

<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');
   }
}
于 2013-06-25T03:47:15.263 回答