Was ich versuche, ist eine generische Suchfunktion für eine Tabelle bereitzustellen. Dem Benutzer werden also alle Daten in einer Tabelle angezeigt, sie geben einen Text ein, nach dem gefiltert werden soll, und voila, die Tabelle wird nun nach allen Ergebnissen gefiltert, die mit diesem Eintrag übereinstimmen.ASP.NET MVC-Abfrage mit optionalem Feld und Wert
Ich habe dies mit einem einzigen Feld arbeiten:
public ActionResult Index(string user_name)
{
var dataContext = new PurchaseOrderDataContext();
var orders = from o in dataContext.purchase_orders
where o.approved_by.display_name.StartsWith(user_name ?? "")
select o;
if (Request.IsAjaxRequest())
{
return PartialView("list", orders);
}
else
{
return View(orders);
}
}
Aber was ich suche ist die Fähigkeit, für sie eine Dropdown-Liste, die sie auf dem Gebiet passieren lässt, dass sie auf filternde . Es wäre so etwas wie dies mag:
public ActionResult Index(string field, string query_value)
{
var dataContext = new PurchaseOrderDataContext();
var orders = from o in dataContext.purchase_orders
where o["field"].StartsWith(query_value ?? "")
select o;
if (Request.IsAjaxRequest())
{
return PartialView("list", orders);
}
else
{
return View(orders);
}
}
... Abgesehen davon, dass die o["field"]
ist nur meine dumme Vermutung an Syntax (was nicht funktioniert).
Ich denke, ich bin nur verwirrt, weil ich manchmal, obwohl ich dieses nette klassifizierte Datenmodell verwende, explizit auf die Spalten mit Namen verweisen möchte.
Wie würde ich das machen?
Ich entschuldige mich, wenn dies offensichtlich ist ...
Edit: Ich glaube, ich jetzt diese offen lassen werde, um zu sehen, ob eine sauberere gibt es weniger hack-ish Gefühl Lösung als unten vorgeschlagen. Vielen Dank!
Ich landete hauptsächlich auf dieser Route ... Es stellte sich heraus, dass es ziemlich elegant und nützlich war.Ich habe eine separate Implementierung für jedes Modell, aber es ist wirklich nicht schlecht. Danke vielmals! –