【发布时间】:2009-05-06 09:24:05
【问题描述】:
我有 - 我认为 - 在 ASP MVC 1.0 中处理的复杂 URL: 我在大多数控制器中的所有操作都需要两个参数:Account 和 Project。这是每个行动的要求之上。这意味着一个典型的 URL 是这样的:
http://abcd.com/myaccount/projects/project_id/sites/edit/12
在这个例子中: myaccount 是帐户名称。 projects 可以是控制器,其他选项例如 locations、employees。 project_id 是 myaccount 中项目的 ID,sites 可以是控制器,其他选项如 staff 或付款。 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 一起工作(即基于此上下文生成正确的链接)?
谢谢!
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-routing