Маршруты MVC и атрибутная маршрутизация

Я пытаюсь заставить некоторые маршруты работать, но я, кажется, где-то допустил ошибку и не вижу ее. Был бы признателен второй взгляд или объяснение того, что я сделал не так.

Физический путь:

/Views/Reports/Awards/Index.cshtml

Желаемый маршрут: / Отчеты / Награды

Моей первой попыткой было создать классическую карту маршрутов (см. Прокомментированный код), а также заметить, что я включил маршруты.MapMvcAttributeRoutes():

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("wcf/{resource}.svc/{*pathInfo}");
        routes.IgnoreRoute("wcf/{resource}.svc");
        routes.MapMvcAttributeRoutes();
        // routes.MapRoute(
        //    name: "Reports",
        //    url: "Reports/{controller}/{action}/{id}",
        //    defaults: new { controller = "Awards", action = "Index", id = UrlParameter.Optional }
        //);
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

    }

"Традиционная" карта маршрутов не сработала, и именно тогда я наткнулся на маршрутизацию атрибутов и решил попробовать. Вот как выглядит контроллер:

[RoutePrefix("Reports/Awards")]
public class AwardsController : Controller 
{

    [Route]
    public ActionResult Index()
    {
}

Если я переместу физическое местоположение папки "Награды", все, похоже, будет работать. Просмотров \ Награды \Index.cshtml

Так есть ли разъединение на физическом пути? я должен на самом деле реализации областей? (Я бы действительно предпочел не делать этого)

Спасибо Крис

0 ответов

Другие вопросы по тегам