2011-06-10 136 views
0

我一直在试图添加一条新记录。Asp.net mvc创建新记录

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。所以,请帮助我解决这个问题。

回答

0

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