0
У меня есть следующие действияMVC RedirectToAction не скрывающие параметры
public ActionResult TemplateBuilder(int id, int? processId) { }
А потом у меня есть следующие
@Url.Action("TemplateBuilder","InspectionTemplate")/id/processId
URL, то выглядит следующим образом: InspectionTemplate/TemplateBuilder/1/2
Но если я использую
return RedirectToAction("TemplateBuilder","InspectionTemplate", new { id=1, processId = 2});
Затем я получаю следующий результат: InspectionTemplate/TemplateBuilder/1?processId=2
Как это исправить.
Вот мой Routing
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "IDRoute",
url: "{controller}/{action}/{id}",
defaults: new
{
controller = "Login",
action = "Index",
id = UrlParameter.Optional
}
);
routes.MapRoute(
name: "ProcessRoute",
url: "{controller}/{action}/{id}/{processId}",
defaults: new
{
controller = "InspectionTemplate",
action = "TemplateBuilder",
id = UrlParameter.Optional,
processId = UrlParameter.Optional
}
);
routes.MapRoute(
name: "DateRoute",
url: "{controller}/{action}/{year}/{month}/{day}",
defaults: new
{
controller = "Inspection",
action = "Assign",
year = UrlParameter.Optional,
month = UrlParameter.Optional,
day = UrlParameter.Optional
}
);
}
Удалить 'ID = UrlParameter.Optional,' 'из ProcessRoute' (только последний параметр может быть необязательным) и изменить его на' URL: «InspectionTemplate/{ action}/{id}/{processId} ",' поэтому его специфический и перенести его на первый маршрут (порядок важен) –
Это не сработало :( –
Nevermind, он работал, забыл переместить его на верх. Добавьте в качестве ответа, чтобы я мог принять его –