我有 - 我认为 - 在 ASP MVC 1.0 中处理的复杂 URL:我在大多数控制器中的所有操作始终需要两个参数:帐户和项目。这是每个行动的要求之上。这意味着一个典型的 URL 是这样的:
http://abcd.com/myaccount/projects/project_id/sites/edit/12
在此示例中: myaccount是帐户名称。projects可以是控制器,其他选项如位置、员工。project_id是myaccount中项目的 id ,站点可以是控制器,其他选项例如人员或付款。edit是一个动作,12是编辑的站点的 id。(希望这足够清楚)
现在一个选项是创建一个路由并将 project_id 和 account 传递给控制器的所有操作,方法是向所有操作添加两个额外的参数。这并不是真正需要的,而且我不确定两个控制器(项目和站点)是否会在这里工作。
我的理想情况是使用某种上下文来调用控制器操作并将 project_id 和 myaccount 存储在其中。然后可以以正常方式处理其余参数,例如:
// sitescontroller
public ActionResult Edit(string id)
{
string account = somecontext["account"];
string project_id = somecontext["project"];
// do stuff
}
关于如何/在哪里发生这种情况的任何想法?另外这将如何与 ActionLink 一起工作(即基于此上下文生成正确的链接)?
谢谢!