2012-04-11 9 views
0

Ich habe eine Aktion in meinem Controller von asp.net mvc-Projekt.wählen Sie neue in linq C#

Ich möchte diese JSON-Daten auf die Ansicht meines Projekts zurückgeben. Es funktioniert gut aus meiner Sicht, wenn ich "Select new" verwendet habe, aber wie ich weiß, wählen Sie neue verwendet, während wir die Untermenge von Daten benötigen. Aber in dieser Abfrage soll ich aus meinem Tisch der ganze Feld erhalten, wie unten:

public JsonResult GetProductBySearch(string Q) 
{ 
    JsonResult jr = new JsonResult(); 
    var _product = from a in DataContext.SearchItem(Q) 
       select a; 
    jr.Data = _product.ToList(); 
    jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet; 
    return jr; 
} 

Dies ist, was ich Schleife in Sicht, ist es sehr gut funktionieren, wenn ich mit ausgewählten neuen verwendet. Aber wenn ich zu SELECT wechseln, funktioniert die Warnung nicht.

$.getJSON(url, data, function (data) { 
    alert(1); 
    $.each(data, function (index, proValByDep) { 

    }); 
}); 

Irgendwelche Ideen bitte.

+2

Es ist sinnlos, 'von x in y x 'zu schreiben. – SLaks

+1

Geben Sie mehr Informationen als nur "es funktioniert nicht" wäre sehr hilfreich. – dasblinkenlight

+0

Welchen Fehler bekommen Sie? – SLaks

Antwort

1

Warum verwenden "aus einem in DataContext.SearchItem (Q) wählen Sie ein"?

Können Sie nicht verwenden jr.Data=DataContext.SearchItem(Q).ToList()

1

Ich werde einfach das Problem erraten, wie die Frage ein wenig unklar.

Im ersten Beispiel sehen wir:

select new { ID = a.ID, ProName = a.Name }; 

Im zweiten die Feldnamen werden nicht das gleiche sein, so dass anstelle von ProName wird das resultierende json Name hat.

Vielleicht erwartet das Javascript ProName und Fehler, weil es nicht definiert ist.

Dies erklärt nicht, warum alert(1); nicht funktioniert.

+0

Aber in meiner Fehlerkonsole zeigt es den Fehler nicht an. – Nothing

+0

Ist das Javascript in der Frage das tatsächliche Javascript auf Ihrer Webseite? – joshuahealy

+0

Ja sicher, es ist meiner Ansicht nach asp.net mvc-Projekt. – Nothing