MVC 2映射从一个控制器到另一个控制器的路由

时间:2010-09-25 12:50:40

标签: asp.net asp.net-mvc-2

我正在使用MVC 2.

我有两个叫做Application和Note的控制器。该申请是一个贷款申请。可以将注释添加到应用程序中。

在我的索引上,我有一个显示所有应用程序的网格,以及一个带有“添加注释”链接的操作列。

在我的应用程序控制器中,我有创建和编辑的操作方法。在我的Note控制器中,我有创建,编辑和删除的操作方法。

我想知道当用户点击“添加注释”链接转到以下网址时,是否可以执行以下操作:

Application/1/Note/Create

1是应用程序ID。注意是Note控制器,Create是Note控制器中的action方法。这样的事情可能吗?

我从我的global.asax中的映射开始,但不确定它是否正确:

routes.MapRoute(
   null,
   "Application/{ApplicationID}/{controller}/{action}",
   new { controller = "Note", action = "Create" });

如何使用操作链接在我的网格中创建链接?

请有人建议吗?

编辑:

上面的网格位于我的主目录中的索引视图中。所以在这个网格上我需要连接如上所示的链接。我正在努力在我的索引视图上创建此链接。它没有正确连接。目前我有这个:

Html.ActionLink(“添加注释”,“创建”,“注意”,新{ApplicationID = c.ApplicationID},null)

And it is displaying as /Note/Create/?ApplicationID=1

我需要它显示为:

/Application/1/Note/Create

由于 布伦丹

1 个答案:

答案 0 :(得分:1)

要使用此路线创建链接,请尝试使用ActionLink辅助方法:

<%= Html.ActionLink(
    "Create note", "Create", "Note", new { ApplicationID = "123" }, null
) %>

将生成/Application/123并导航至Create的{​​{1}}操作,并将NoteController作为123参数传递:

applicationID

这假设路线的注册如下:

public class NoteController : Controller
{
    public ActionResult Create(int applicationID)
    {
        return View();
    }
}