Области MVC - Просмотр и ActionLink не верны - PullRequest
0 голосов
/ 11 марта 2019

У меня есть проект 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
Что не так?

...