2011-12-06 70 views
1

我正在使用现有数据库的ado.net实体模型。 我使用两个表格产品和类别。asp.net mvc viewdata显示类别名称

我有一个产品控制器:

public ActionResult Products() 
     { 

      using (var db = new StoreMvcEntities()) 
      { 
       ViewData["categories"] = db.Categories.ToList(); 

       return View(db.Products.ToList()); 
      } 
     } 

和视图:

@foreach (var item in Model) { 
     <tr> 
      <td> 
       @Html.DisplayFor(modelItem => item.ProductName) 
      </td> 
      <td> 

       @Html.DisplayFor(modelItem => item.category.categoryname) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.price) 
      </td> 
      <td> 
       @Html.ActionLink("Edit", "Edit", new { id=item.Id }) | 
       @Html.ActionLink("Details", "Details", new { id=item.Id }) | 
       @Html.ActionLink("Delete", "Delete", new { id=item.Id }) 
      </td> 
     </tr> 
    } 

这里的问题是:在控制器中,如果删除ViewData["categories"] = db.Categories.ToList();产品类别名称是空的视图。我没有在视图中使用ViewData["categories"],并且要获取产品类别名称,我必须调用 db.Categories并将结果影响到任何viewdata。

有人可以向我解释这是如何工作的?

回答

0

我的猜测是你遇到了模型绑定的副作用。 Products类是否拥有Category类的属性?

+0

产品类别只有类别ID –