成功插入数据库后抛出消息,如果未成功则返回错误消息

时间:2019-01-25 07:34:05

标签: c# sql-server

我正在插入数据库。我的代码运行正常,但是如果插入成功或失败,则尝试抛出消息时会卡住。请在下面检查我的代码。例如,如果插入成功,则应显示“插入成功”之类的消息。

public class HomeController : Controller
{
    public ActionResult Index()
    {
        SalesLayanEntities3 db = new SalesLayanEntities3();
        List<Product_Category> list = db.Product_Category.ToList();
        ViewBag.ProductName = new SelectList(list,"cat_id","cat_name");

        return View();
    }

    public ActionResult SaveRecord(ProductForm model)
    {
        try
        {
            SalesLayanEntities3 db = new SalesLayanEntities3();
            Product prod = new Product();

            prod.prod_name = model.Prod_name;
            prod.prod_model = model.Prod_model;
            prod.prod_quantity = model.Prod_quantity;
            prod.prod_description = model.Prod_description;
            prod.prod_unit_cost_price = model.Prod_unit_cost_price;
            prod.cat_id = model.Cat_id;

            db.Products.Add(prod);
            db.SaveChanges();
            int latestProdId = prod.prod_id;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return RedirectToAction("Index");
    }
 }

3 个答案:

答案 0 :(得分:3)

您没有收到任何消息,因为您正在重定向到索引页面。

您可能希望重定向到成功页面RedirectToAction("Success", "Shared")

您可以使用“错误”页面来处理抛出的异常,我相信您默认情况下已经在这样做。

答案 1 :(得分:0)

尝试向redirect添加参数(您将需要更改latestProdId的范围):

return RedirectToAction("Index", new {addedID = latestProdId );

,然后向Index

添加可选参数
public ActionResult Index(int latestProdId  = 0)

测试latestProdId是否为非零值,然后将其传递回视图以显示。

答案 2 :(得分:0)

您可能要使用TempData。可以在您的视图中访问它。

控制器:

TempData["status"] = "Success";

查看:

{
    @TempData["status"];
}

您可以这样做:

public ActionResult SaveRecord(ProductForm model)
{
    try
    {
        SalesLayanEntities3 db = new SalesLayanEntities3();
        Product prod = new Product();

        prod.prod_name = model.Prod_name;
        prod.prod_model = model.Prod_model;
        prod.prod_quantity = model.Prod_quantity;
        prod.prod_description = model.Prod_description;
        prod.prod_unit_cost_price = model.Prod_unit_cost_price;
        prod.cat_id = model.Cat_id;

        db.Products.Add(prod);
        db.SaveChanges();
        int latestProdId = prod.prod_id;
        TempData["status"] = "Success";
    }
    catch (Exception ex)
    {
        TempData["status"] = "Error";
        throw ex;
    }
    return RedirectToAction("Index");
}