0

我对 MVC 很陌生。我现在面临路由问题。我的项目 URL 是 /account/Create。我可以访问控制器并为 Create 做我的事情,但我需要访问 /account 控制器,因为我需要在该级别编写代码。

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

项目结构:
示例项目

  • 控制器
  • 模型
  • 看法

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

//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
    );
}
4

2 回答 2

0

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

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 级别编写代码,您可以在控制器的构造函数中执行此操作。

于 2013-03-27T05:29:30.607 回答
0

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

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

控制器只是一个 Actions 的容器,所以你需要指定一个 Action。当然,如果未指定操作,您可以使用默认操作。这在上面的路由中默认指定。它被称为索引

于 2013-03-27T05:29:34.393 回答