2012-05-18 3 views
1

У меня есть 2 объекта Заказы и элементы с OrdersController и ItemsController. В моих Заказы Индекс Просмотр У меня есть WebGridASP.NET MVC контроллер чтения другой объект

grid.Column(columnName: "OrderNo", header: "Order No.", canSort: true), 
grid.Column(columnName: "OrderDate", header: "Order Date", canSort: true),                       
grid.Column(" ", " ", format: @<a href="@Url.Action("Index", "Items", new { id = item.OrderNo })">Items</a>) 

В ItemsController я добавил Индекс параметра:

public ActionResult Index(string id = "0") 
    { 
     var orderq = from a in db.items 
         where a.OrderNo== id 
         select a; 
     return View(orderq.ToList()); // ex : orderq.Count = 2 
    }... 
    protected override void Dispose(bool disposing) 
    { 
     db.Dispose(); 
     base.Dispose(disposing); 
    } // Object reference not set to an instance of an object 

Но я получаю Ссылка на объект не указывает на экземпляр объекта.

Вопрос: Что мне нужно, чтобы открыть вид товаров из моих заказов?

Должен ли я очистить свой контекст и объявить его снова?

+0

Где вы получите сообщение об ошибке? Вы попадаете в базу данных/у вас есть что-то в вашем контексте, когда вы запрашиваете orderq в действии? – AFD

+0

для ex in Items Index: return View (orderq.ToList()); // orderq.Count() = 2 – Misi

+0

В режиме отладки после указанной выше строки он вводит метод защищенного переопределения void Dispose (bool disposing), после чего * Ссылка на объект не установлена ​​в экземпляр объекта. * – Misi

ответ

0

Order.cshtml

grid.Column(" ", " ", format: @<a href="@Url.Action("Index", "Items", new { id = item.OrderNo})">Items</a>))); 

ItemsController.cs

public ActionResult Index(string id = "0") 
    { 
     var itemsqry = db.items.Where(a=>a.OrderNo == id); 
     return View(itemsqry .ToList()); 
    }