我正在插入数据库。我的代码运行正常,但是如果插入成功或失败,则尝试抛出消息时会卡住。请在下面检查我的代码。例如,如果插入成功,则应显示“插入成功”之类的消息。
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");
}
}
答案 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");
}