MVC路由问题我找不到解决方案

时间:2013-04-08 18:29:51

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

我有一个名为User的区域。在那个区域下,我有一个名为Index的视图。

区域注册只有一条路线:

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
                "0",
                "user/signup",
                new { action = "Index", controller = "Signup" },
                new string[] { "Company.Web.Areas.User.Controllers" }
            );
}

控制器的路径:

Areas\User\Controllers\SignupController.cs

查看路径:

Areas\User\Views\Signup\Index.cshtml

这就是我尝试使用注册超链接在标头中生成URL的方式:

<a href="@Url.Action("Index", "Signup", new { area = "User", returnUrl=ViewContext.HttpContext.Request.Url.PathAndQuery })">Signup</a>

这是我得到的网址: http://www.myserver.com/user/signup?returnUrl=home/main

网址看起来正确,路由只有一条路线。

但是当我点击网址时,它说:资源无法找到。用户/注册

我错过了什么?

1 个答案:

答案 0 :(得分:0)

尝试

context.MapRoute(
            "signup",
            "{controller}/{action}", // URL with parameters
            new { controller = "Signup", action = "Index" } // Parameter defaults
        );

那应该映射到注册控制器和索引操作