Ich mag würde eine Tabelle in meiner Anwendung, die die Ergebnisse einer Suche zurückgibt. Ich habe zwei UI-Komponenten, die dabei helfen. Einer, eine Texteingabe, die als Suchbegriff eines und zwei, eine Suche nach Drop-Down-Menü dient, die letztlich, was Tabelle Datenbank bestimmt abzufragen.ASP.NET - Verwenden von Teilansichten zu Asynchron Suchen Ergebnisse anzeigen Tabelle
Mein Controller ist als HttpGet konfiguriert, um die Parameter searchBy
und searchString
zu akzeptieren. Wenn Suche nach "Option1" ist, wird "Tabelle 1" abgefragt, wenn searchBy "Option2" ist und "Tabelle2" abfragt. Ich möchte dann eine Teilansicht auf die Hauptansicht ohne eine Aktualisierung zurückgeben. Ich habe dies derzeit so eingerichtet, dass ich zwei verschiedene Modelle und zwei verschiedene Teilansichten habe, die jeweils miteinander verbunden sind. Der Plan ist, AJAX zu verwenden, um ein "GET" an die Controller-Aktion mit den entsprechenden Parametern zu senden.
Wie verwende ich Rasierer Syntax in der Hauptansicht, so dass es verarbeiten kann entweder Teilansicht zurückgegeben werden?
-Controller
[HttpGet]
public async Task<ActionResult> Table(string searchBy, string searchString)
{
switch (searchBy)
{
case "Option 1":
List<model1> Model1 = new List<model1>();
var blah = from a in db.Table1 a;
blah = blah.Where(a => a.propA.Contains(searchString)
|| a.propB.Contains(searchString));
foreach (var a in blah)
{
Model1.Add(new model1 {...... });
}
return PartialView("_PartialView1", Model1);
case "Option2":
List<model2> Model2 = new List<model2>();
var foo = from p in db.Table2 select p;
foo = foo.Where(p => p.propC.Contains(searchString)
|| p.propD.Contains(searchString)
|| p.propE.Contains(searchString)
foreach (var p in foo)
{
Model2.Add(new mode2 { .... });
}
return PartialView("_PartialView2", Model2);
default:
return PartialView("_DefaultPartialView");
}
}