2009-08-18 2 views
1

개체의 목록을 삽입하는 데 문제가 있습니다. 컨트롤러는 다음과 같습니다.int의 목록 삽입

public ActionResult Edit(int productID) 
    { 
     //ProductEditViewModel pm = new ProductEditViewModel(); 

     Product product = _pr.GetProducts().ByProductID(productID).First(); 
     product.Categories.Load(); 
     //ICollection<Category> allCategories = _cr.GetCategories().ToList(); 

     List<SelectListItem> Categories = (from category in _cr.GetCategories().ToList() 
              join pc in product.Categories 
              on category.CategoryID equals pc.CategoryID into j 
              select 
              new SelectListItem 
              { 
               Selected = j.Any(), 
               Value = category.CategoryID.ToString(), 
               Text = category.Categoryname 
              }).ToList(); 

     ViewData["allCategories"] = Categories; 

     return View("Edit", new ProductEditViewModel { Product = product }); 
    } 

    // 
    // POST: /Products/Edit/5 

    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Edit(Product product, int[] CategoryID) 
    { 
     try 
     { 
      // TODO: Add update logic here 

      return RedirectToAction("Index"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

"product.Categories"에 대한 CategoryID의 목록을 모두 업데이트/삽입하려면 어떻게해야합니까?

"int [] CategoryID"가 아닌 다른 것이 있습니까? 사전 에서

감사합니다/M

+0

거기에 LINQ to SQL을 사용하고 있습니까? 귀하의 질문은 ASP.NET MVC보다 사용하는 데이터 액세스 기술과 더 관련이 있으므로 해당 주제에 대해 조금 더 확장하고 질문에 다시 답할 것을 제안합니까? –

답변

1

나는 그 키 포인트입니다로보기 모양을 볼 수 없습니다. 인덱스가 구멍이 안된다고

<input type="hidden" name="CategoryId[0]" value="123" /> 
<input type="hidden" name="CategoryId[1]" value="456" /> 
<input type="hidden" name="CategoryId[2]" value="789" /> 

주 당신은 아마 인접 해 입력의 유형 대신 숨겨진이있을 것이다 :
로보기는 이것에 HTML 비슷한 생성해야합니다.

관련 문제