MVC路由访问路径

时间:2013-03-27 00:57:55

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

我对MVC很新。我现在面临着路由问题。我的项目网址是/ account / Create。我可以访问控制器并为Create创建我的东西,但是 我需要访问/帐户控制器,因为我需要在该级别编写代码。

/ account / create - 我可以访问此级别的代码
/ account - 不知道如何访问此控制器

项目结构:
示例项目

  • Controler
  • 型号
  • 查看

我应该在以下代码中更改什么?

//global.asax.cs
public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } //Parameter defaults
    );
}

2 个答案:

答案 0 :(得分:0)

/account/create正在访问帐户控制器中的代码。 Create必须是帐户控制器上的方法(除非您修改默认路由)。您在帐户控制器上定义的任何公共方法都可以通过/account/method URL访问。根据您发布的路线,转到/帐户URL将调用帐户控制器索引方法:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    **new { controller = "Home", action = "Index", id = UrlParameter.Optional }** // Parameter defaults
);

上面的 action =“Index”部分是定义帐户控制器上的默认方法,因此在这种情况下,/ account URL与/ account / index URL等效

我刚注意到你在问题中拼错了帐号,不确定这可能是你的问题;)


更新

不确定这是否是你所追求的,但如果你需要在/ Account级别编写代码,你可以在控制器的构造函数中执行此操作。

答案 1 :(得分:0)

除非您基本上自定义MVC,否则控制器对应于mvc中从Controller派生的类,并且操作对应于这些控制器上的方法。

当您说无法访问控制器/帐户时,您想要实现什么目标?

控制器只是Actions的容器,因此您需要指定一个Action。当然,如果未指定操作,您可以使用默认操作。默认情况下,指定上述路线。它被称为索引