私は、ASP MVC 1.0 で処理する複雑な URL を持っていると思います。ほとんどのコントローラーでのすべてのアクションには、アカウントとプロジェクトの 2 つのパラメーターが常に必要です。これは、各アクションの要件の上にあります。これは、典型的な URL が次のようなものであることを意味します。
http://abcd.com/myaccount/projects/project_id/sites/edit/12
この例では: myaccountはアカウント名です。プロジェクトはコントローラーにすることができ、他のオプションは場所、従業員などです。project_idはmyaccount内のプロジェクトの ID です。sitesはコントローラーである可能性があり、その他のオプションはstaffやpaymentのようなものです。editはアクションで、12は編集されたサイトの ID です。(これが十分に明確であることを願っています)
1 つのオプションは、ルートを作成し、すべてのアクションに 2 つの追加パラメーターを追加して、コントローラーのすべてのアクションに project_id とアカウントを渡すことです。これは実際には望ましくありません。また、2 つのコントローラー (プロジェクトとサイト) がここで機能するかどうかもわかりません。
私の理想的な状況は、コントローラー アクションへの呼び出しと共に移動するある種のコンテキストを使用し、そこに project_id と myaccount を格納することです。残りのパラメーターは、次のような通常の方法で処理できます。
// sitescontroller
public ActionResult Edit(string id)
{
string account = somecontext["account"];
string project_id = somecontext["project"];
// do stuff
}
これがどのように/どこで起こるかについてのアイデアはありますか? また、これは ActionLink とどのように連携しますか (つまり、このコンテキストに基づいて正しいリンクを生成します)?
ありがとう!