具有进一步操作的 MVC 控制器 ID

本文关键字:MVC 控制器 ID 操作 进一步 | 更新日期: 2023-09-27 18:33:20

所以目前一直在尝试创建一个网站(MVC相对较新)。假设我有当前链接:

www.website.com/Project/3

哪个工作正常。但是,在该项目中,我希望 3 几乎总是在那里以更好的方式指定项目(因为人们可以有多个项目)。因此,如果他们转到项目内的页面,我希望它看起来像这样:

www.website.com/Project/3/CreateOption

我一直在努力思考一种方法,但想不出任何好的方法。做了研究,但要么不知道该写什么到谷歌,要么是不可能的。

如果有人能帮忙,那就太棒了!如果您需要更多信息,请告诉我。

具有进一步操作的 MVC 控制器 ID

不确定您的 MVC 版本。

但是 MVC 5 中的属性路由 ASP.NET 是您正在寻找的

这相对容易做到。如果您的 URL 结构非常明确。 如果您不需要标准默认路由,那么就像执行以下操作一样简单:

routes.MapRoute(
   name: "Project",
   url: "Project/{projectId}/{action}",
   defaults: new { controller = "Project", action = "Index" }

这将要求项目ID存在。

然后,在您的操作方法中,您将拥有:

public ActionResult Index(int projectId)
{
}
public ActionResult CreateOption(int projectId)
{
}

这里的关键是 projectId 是必需的,而不是可选的,并且您的路由路径被硬编码为 Project。

您可以将默认操作设置为索引或任何您喜欢的操作,以便/Project/3 生成默认操作,如上所示。 或者,您也可以强制执行该操作。 如果需要其他参数,也可以添加这些参数(如果它们需要成为 url 的一部分)。