Asp.net mvc创建新记录

时间:2011-06-10 05:07:08

标签: asp.net-mvc-3

我一直在尝试添加新记录。

public ActionResult Create()
    {


       var dc = new ServicesDataContext();
      ViewData["CustomerID"] = TempData["CustomerID"];
        var a = dc.services.Select(arg => arg.ServiceID).ToList();
        ViewData["ServiceID"] = new SelectList(a);
       var model = new Maping();

        return View(model);
    } 

    //
    // POST: /Customerservice/Create

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create([Bind(Exclude ="CustomerServiceMappingID")]  Maping serviceToCreate)
    {


        if (!ModelState.IsValid)

                return View();

       var dc = new ServicesDataContext();
       dc.Mapings.InsertOnSubmit(serviceToCreate);

           dc.SubmitChanges();

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



    } 

现在的情况是tempdata具有正确的值,但是当我提交更改时,customerID变为null。所以,请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

AFAI了解您将客户ID从TempData复制到ViewData。但是,请求结束后,ViewData的内容将不会保留。在您的视图中,您应该将客户ID放入输入(例如,如果不显示隐藏字段),以便将其恢复到后期操作中。 如果使用强类型模型,则根本不应使用ViewData,而应在模型实例上设置客户ID。然后在视图中,您可以使用Html.HiddenFor(m => m.CustomerId)来“保留”此ID。 我希望我没有误解这个问题,遗憾的是,在您的代码片段中,您在post操作中的客户ID为null时,它实际上并不可见。