添加MapMvcAttributeRoutes后,正常路由停止工作

时间:2017-06-22 08:08:59

标签: c# asp.net-mvc routes custom-attributes

我的RouteConfig中有以下代码:

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

        //routes.MapMvcAttributeRoutes();

        routes.MapRoute(
            name: "Transfer",
            url: "Transfer/{controller}/{action}/{id}",
            defaults: new { id = UrlParameter.Optional });

        routes.MapRoute(
            "Director",
            "{*parameters}",
            new { controller = "Home", action = "Index"}
        );
    }

一切都运行良好,但每当我取消注释routes.MapMvcAttributeRoutes();行时,只有属性路由有效,另一个则不能。这是我的控制器:

public class HomeController : Controller
{

    [Route(""), Route("Home")]
    public ActionResult Index()
    {
        return this.View();
    }

    [Route("ContactUs")]
    public ActionResult ContactUs()
    {
        return this.View();
    }

    [Route("PrivacyPolicy")]
    public ActionResult PrivacyPolicy()
    {
        return this.View();
    }

    [Route("TermsOfUse")]
    public ActionResult TermsOfUse()
    {
        return this.View();
    }

}

这是什么原因?它似乎首先发生在我身上。我之前已多次这样做但这个问题从未发生过。

1 个答案:

答案 0 :(得分:0)

你在这里做错了:

尝试这种方式:

[Route("Home")]
public ActionResult Index()
{
    return this.View();
}