Ich bin Ihre NameSearch
Funktion unter der Annahme, wertet das Ergebnis einer Abfrage aus und gibt diese Ergebnisse basieren auf:
- Ist die Abfrage gültig? Wenn nicht, kehren Sie zum Index zurück.
- Gibt es 0 oder> 1 Personen im Ergebnis, wenn ja, an Suchergebnis senden
- Wenn es genau 1 Person im Ergebnis gibt, senden Sie an Details.
also mehr oder weniger dem Controller würde wie folgt aussehen:
public class PersonController
{
public ActionResult NameSearch(string name)
{
// Manage query?
if (string.IsNullOrEmpty(name))
return RedirectToAction("Index");
var result = GetResult(name);
var person = result.SingleOrDefault();
if (person == null)
return RedirectToAction("SearchResults", new { name });
return RedirectToAction("Details", new { id = person.Id });
}
public ActionResult SearchResults(string name)
{
var model = // Create model...
return View(model);
}
public ActionResult Details(int id)
{
var model= // Create model...
return View(model);
}
}
Also, würden Sie wahrscheinlich Routen so definieren müssen, dass:
routes.MapRoute(
"SearchResults",
"Person/SearchResults/{name}",
new { controller = "Person", action = "SearchResults" });
routes.MapRoute(
"Details",
"Person/Details/{id}",
new { controller = "Person", action = "Details" });
Die Index
Aktion Ergebnis wird behandelt standardmäßig {controller}/{action}/{id}
Route.
Das drücken Sie in die richtige Richtung?
Danke matthew! Das ist genau die Richtung, nach der ich gesucht habe! – zSynopsis
Vergiss es. Ich habe herausgefunden, was ich falsch gemacht habe. – zSynopsis
Können Sie die Frage mit einem Auszug aktualisieren, wie Ihr Controller tatsächlich aussieht, und auch Ihre Routen (und die Reihenfolge, in der sie registriert sind) –