ASP.NET MVC создает новую запись базы данных - PullRequest
0 голосов
/ 10 июня 2011

Я изучаю 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 голосов
/ 10 июня 2011

Используйте TempData, а не ViewData - он будет действителен до следующего чтения.Также, почему вы добавляете их в viewdata, когда они передаются в качестве параметра в RedirectToAction?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...