Проблема / попытка 1:
У меня есть пользовательская карта маршрутов:
routes.MapRoute(
name: "User Profile",
url: "User/{userId}/{controller}/{action}/{id}",
defaults: new { Areas = "User", controller = "Kpi", action = "Index", id = UrlParameter.Optional }
);
Если я вручную перехожу на URL /User/f339e768-fe92-4322-93ca-083c3d89328c/Kpi/View/1
, страница загружается с ошибкой просмотра : The view 'View' or its master was not found or no view engine supports the searched locations
.
Проблема / попытка 2:
Остановлен с использованием пользовательского маршрута и вместо него настроен мой контроллер:
[RouteArea("User")]
[RoutePrefix("{userId}/Kpi")]
public class KpiController : BaseUserController
{
[Route("View/{id}")]
public async Task<ActionResult> View(string userId, int? id = null)
{
[...]
}
}
Теперь это работает Я могу перейти к URL-адресу, и представление отображается нормально.
Проблема для обоих:
Хотя я могу перейти к обоим вручную, и они загружаются, я не могу создать URL правильно используя ActionLink
:
@Html.ActionLink(kpi.GetFormattedId(), "View", "Kpi", new { Area = "User", userId = Model.Id, id = kpi.Id }, null)
Генерирует: /User/Kpi/View/1?userId=f339e768-fe92-4322-93ca-083c3d89328c
вместо /User/f339e768-fe92-4322-93ca-083c3d89328c/Kpi/View/1