404区域中的属性路由

时间:2017-06-22 16:49:57

标签: c# asp.net-mvc-5 attributerouting

当我尝试转到agency区域中我家控制器中的索引方法时,收到IIS 404错误消息。如果我将route属性更新为:[Route("{action}")]它运行正常,但我希望将index保留为默认路由。

在我看来,我有这个:

@Html.ActionLink("Click here", "index", "home", new { area = "agency" }, new { @class = "btn btn-block btn-lg btn-primary" })

代理商区的HomeController

namespace ProjectName.UI.Areas.Agency.Controllers
{
    [RouteArea("agency")]
    [RoutePrefix("home")]
    [Route("{action=index}")]
    public class HomeController : BaseController
    {

        public ActionResult Index()
        {
            return View();
        }
    }
}

RouteConfig:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapMvcAttributeRoutes();
    AreaRegistration.RegisterAllAreas();

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "home", action = "index", id = UrlParameter.Optional },
        namespaces: new[] { "ProjectName.UI.Controllers" }
    );
}

我还有一个与代理商区域完全相同的管理区域,但RouteAreaadmin并且我没有任何问题。

欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

我发现问题是因为我的区域被称为Agency而在我的Views文件夹中我有另一个名为Agency的子文件夹。它没有路由到agency/home/index,而是试图在home文件夹中找到agency视图。