У меня есть проект MVC5 с тремя областями (пользователи, регионалы, администраторы).В области пользователей у меня есть UserAreaRegistration.cs:
public class UsersAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Users";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Users_default",
"Users/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new[] { "MyProject.Areas.Users.Controllers" }
);
}
}
В пользовательских контроллерах у меня есть DashBoardUsersController.cs:
namespace MyProject.Areas.Users.Controllers
{
[RouteArea("Users", AreaPrefix = "")]
[RoutePrefix("User")]
[Route("{action=index}")]
public class DashBoardUserController : Controller
{
[Route("index")]
[Route("dashboard")]
public async Task<ActionResult> Index()
{
...
return View(model);
//return View("~/Areas/Users/Views/DashBoardUser/Index.cshtml", model);
}
...
}
Перед добавлением [RouteArea("Users", AreaPrefix = "")]
я использовал
return View("~/Areas/Users/Views/DashBoardUser/Index.cshtml", model)
для вызова http://localhost:5586/User/DashBoard
.
Теперь я использовал только return View(model)
, и это нормально для просмотра, но ActionLink не работает.
, если я пишу
@Html.ActionLink("Edit", "EditProfile", "User")
или
@Html.ActionLink("Edit", "EditProfile", "User", new {Area="Users" }, null)
Я получаю эту ссылку: http://localhost:5586/Users/User/EditProfile
вместо http://localhost:5586/User/EditProfile
Что не так?