У меня есть действия Get в моих контроллерах, которые имеют два параметра. Я вызываю их из представлений Razor, как это, используя JS функции:
function deleteAddress(addressId) {
url = '@Url.Action("Delete", "Addresses",new { addressId = "3",actionRouteAfterActionFinish="SelectAddress"})';
openLink(url);
}
А вот объявление моего действия внутри контроллера:
public async Task<ActionResult> Delete(int addressId,string actionRouteAfterActionFinish){
...
...
}
Когда я добавляю ниже Attribute route, он работает и оба параметра правильно передаются из вида Razor в Delete
действие:
[Route("Addresses/Delete/{addressId}/{actionRouteAfterActionFinish}")]
Но когда я пытаюсь использовать ниже RouteConfig
, оно не работает, и 2-й параметр устанавливается null
, когда метод позвонить с точки зрения бритвы. Интересно, как мне переписать RouteConfig
для управления действиями с двумя параметрами?
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//enabling attribute routing
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Intro", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "TwoParamterAction",
url: "{controller}/{action}/{parameter1}/{paramter2}"
);
Я переставил Default
правило с правилом TwoParamterAction
, но это не помогло.