w / Url.Action при таргетинге на индексную страницу - PullRequest
1 голос
/ 22 марта 2011

Я сталкиваюсь с ситуацией, когда «полностью определенный» маршрут не генерируется, когда это необходимо. Следующий код демонстрирует проблему:

        var junk = Url.Action("Index2", "Reference", new { area = "Admin" });
        junk = Url.Action("Index", "Reference", new { area = "Admin", memberID = 47 });

Первый вызов Url.Action () создает / Admin / Reference / Index2 . Второй вызов выдает / Admin / Reference , я полагаю, потому что "Index" является идентификатором по умолчанию.

К сожалению, отображение маршрута (которое я не изменял, так как оно было сгенерировано VS2010), конечно, обработает второй маршрут как вызов метода Reference на контроллере Admin в корневой области. Определитель маршрутов никак не может знать, что вторая ссылка действительно предназначена для обработчика индекса эталонного контроллера в области администратора.

Один очевидный обходной путь - не использовать метод Index в контроллере внутри области. Но это кажется уродливым. Я заинтересован в лучшем / более надежном подходе.

1 Ответ

1 голос
/ 07 апреля 2011

Хорошо, неважно. Оказывается, проблема заключалась в комбинации неверного имени области и атрибута HttpPost в методе, который должен иметь возможность отвечать на GET. Пожалуйста, не обращайте внимания

...