我有一个名为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
网址看起来正确,路由只有一条路线。
但是当我点击网址时,它说:资源无法找到。用户/注册
我错过了什么?
答案 0 :(得分:0)
尝试
context.MapRoute(
"signup",
"{controller}/{action}", // URL with parameters
new { controller = "Signup", action = "Index" } // Parameter defaults
);
那应该映射到注册控制器和索引操作