で
おかげで私はあなたのNameSearch
関数は、クエリの結果を評価し、に基づいて、これらの結果を返すと仮定しています:
- 有効なクエリですか?そうでない場合は、インデックスに戻ります。
- 検索結果に0または> 1人が含まれていますか?
- 結果に正確に1人の人がいる場合は、詳細に送信してください。
ので、以下のより多くのあなたのコントローラは、次のようになります。Index
アクションの結果が処理されます
routes.MapRoute(
"SearchResults",
"Person/SearchResults/{name}",
new { controller = "Person", action = "SearchResults" });
routes.MapRoute(
"Details",
"Person/Details/{id}",
new { controller = "Person", action = "Details" });
:だから
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);
}
}
、あなたはおそらく、そのようなことをルートを定義する必要がありますデフォルトでは{controller}/{action}/{id}
ルートになります。
これはあなたを正しい方向に押し込んでいますか?
ありがとうございました!それはまさに私が探していた方向です! – zSynopsis
心配しないでください。私は何が間違っているのか分かった。 – zSynopsis
あなたのコントローラの実際の外観とルート(および登録されている順序)を抽出して質問を更新できますか? –