Domanda

Ho avere 500 errore interno quando ottiene la risposta Ajax.

Questa è la funzione ajax del controllore:

   [GridAction]
    public ActionResult SelectItemGridAjax(int OrderID)
    {
        return View(new GridModel(ordersRepository.GetOrderItemsTK(OrderID).ToList()));
    }

Questo è ciò che manda il Repository:

   public IEnumerable<ItemsInOrder> GetOrderItemsTK(int OrderID)
    {
        using (var context = new techrundb())
        {
           var  result = (from p in context.ItemsInOrders.Include("Order").Where(i=>i.OrderID == OrderID) select p).ToList();
           return result;
        }
    }

Questo è il rispondere server:

L'istanza è stata ObjectContext disposti e non può più essere utilizzato per operazioni che richiedono una connessione.

C'è un "riferimento circolare" tra l'ordine e ItemsInOrder. Ma se mi tolgo la include ( "Ordine") ottengo un'eccezione quando la griglia è enumarating l'oggetto ItemsInOrder (sul campo di ordinazione).

E 'questo errore relativo al riferimento circolare? Cosa dovrei fare ? Creare un nuovo oggetto e manualmente sostituirlo sul tragitto di andata e dalla rete?

È stato utile?

Soluzione

Ho risolto questo problema con la creazione di un nuovo elenco di Poco elementi dall'elenco restituiti dal database. Non credo che questa sia la soluzione migliore, e di sicuro non un efficiente, ma ci ha fatto la griglia di lavoro.

La speranza di una soluzione migliore si presenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top