ASP.Net MVC 3, JQGrid

Nach der Lektüre bis auf den JQGrid-Steuerung, beschloss ich, es wäre gut, um es in einem meiner ASP.Net MVC 3 Web-Anwendungen.

Erstens folgte ich Phil Haacks tutorial http://haacked.com/archive/2009/04/14/using-jquery-grid-with-asp.net-mvc.aspx ist alles gut. Ich habe dann versucht, etwas umzusetzen, ähnlich wie in meiner app, der einzige Unterschied ist, ich nutze Linq To Entities.

Meine Ansicht Seite hat alle css-und Jquery-Klassen importiert, dann habe ich meinen JavaScript-Funktion und die Tabelle enthält die Daten

<script type="text/javascript">
jQuery(document).ready(function () {
    jQuery("#list").jqGrid({
        url: '/Home/LinqGridData/',
        datatype: 'json',
        mtype: 'GET',
        colNames: ['equipmentID', 'categoryTitle', 'title'],
        colModel: [
      { name: 'equipmentID', index: 'equipmentID', width: 40, align: 'left' },
      { name: 'categoryTitle', index: 'categoryTitle', width: 40, align: 'left' },
      { name: 'title', index: 'title', width: 200, align: 'left'}],
        pager: jQuery('#pager'),
        width: 660,
        height: 'auto',
        rowNum: 10,
        rowList: [5, 10, 20, 50],
        sortname: 'Id',
        sortorder: "desc",
        viewrecords: true,
        imgpath: '/scripts/themes/coffee/images',
        caption: 'My first grid'
    });
}); 

<h2>My Grid Data</h2>
<table id="list" class="scroll" cellpadding="0" cellspacing="0"></table>
<div id="pager" class="scroll" style="text-align:center;"></div>

Dann in meinem controller habe ich folgende Methode, die angenommen, die Rückkehr der Json-Daten

public ActionResult LinqGridData(string sidx, string sord, int page, int rows)
    {
        AssetEntities context = new AssetEntities();

        var query = from e in context.Equipments
                    select e;

        var count = query.Count();

        var result = new
        {
            total = 1,
            page = page,
            records = count,
            rows = (from e in query
                    select new
                    {
                        id = e.equipmentID,
                        cell = new string[]
                        {
                        e.equipmentID.ToString(),
                        e.Category.categoryTitle,
                        e.Department.title
                        }

                    }).ToArray()
        };

        return Json(result, JsonRequestBehavior.AllowGet);

    }

Wenn ich diese ausführe, ist der code fällt mit dem folgenden Fehler

LINQ to Entities does not recognize the method 'System.String ToString()' method

Weiß jemand, wie man diesen Fehler beheben? Und auch, Tue ich dies der richtige Weg ist, oder soll ich es tun eine andere Weise von der Phil Haack Erklärung, da er mithilfe von Linq to SQL?

Jedes feedback würde sehr geschätzt.

Vielen Dank Leute.

  • welche Codezeile den Fehler erzeugt? Denn durch meine beste Vermutung, es sieht aus wie es ist passiert in deinem controller (der einzige Ort, den ich sehen .ToString () - Methode)
  • Ja, Sie sind richtig. Die Anwendung fällt bei e.- Ausrüstung.ToString() . Alle Lösungen? Danke.
  • was ist der Datentyp von e.equipmentID? Wenn es schon ein string, das mag Ihr problem sein. Alternativ, wenn es etwas ist, dass nicht die .toString () - Funktionalität eingebaut, wie ein benutzerdefinierter Daten-Typ, das könnte auch das problem sein.
  • e.equipmentID ist vom Typ int, es muss gegossen werden, um den Typ string, das ist, warum ich es versucht habe .ToString()
InformationsquelleAutor tcode | 2011-02-23
Schreibe einen Kommentar