ASP.NET MVC创建一个新的数据库记录

时间:2011-06-10 03:07:02

标签: asp.net asp.net-mvc-3

我一直在学习asp.net mvc 3.所以,基本上我正在尝试在数据库中创建一个新记录。但是,我正在尝试保留预定义的特定记录

  public ActionResult Create()
    {


        var dc = new ServicesDataContext();

       var model = new Maping();
       var query = (from m in dc.Customers
                    where m.CustomerId == model.CustomerID
                    select m.CustomerId);
       ViewData["CustomerID"] = query.First();
        return View(model);
    } 

    //
    // POST: /Customerservice/Create

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create([Bind(Exclude="CustomerServiceMappingID")] Maping serviceToCreate, FormCollection form)
    {
        if (!ModelState.IsValid)

                return View();

       var dc = new ServicesDataContext();
       dc.Mapings.InsertOnSubmit(serviceToCreate);
        try
        {
            dc.SubmitChanges();
        }
        catch (Exception e)
        {

        }

        try
        {
            var id = Int32.Parse(form["CustomerID"]);
            ViewData["CustomerID"] = id;
            return RedirectToAction("Index", new { id = id });
        }
        catch
        {


            return RedirectToAction("INDEX", "Home");

        }
    }

所以这就是我所做的。所以,情况是第二个动作方法中的id值是我需要的。然而,第二种方法被重定向到索引,因此viewdata值丢失。我在第一个crate方法中所做的事情是错误的,因为没有赋值。那么,请你帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

使用TempData,而不是ViewData - 在再次读取之前它将一直有效。另外,为什么在将它作为RedirectToAction中的参数传递时将它添加到viewdata中?