Вам необходимо включить langid
как часть вашего маршрута, иначе MVC не будет отображать ваш URI, даже если вы указали значение по умолчанию.
Возьмите эти два маршрута:
routes.MapRoute(
@"CreateNewRuntime",
@"{langId}/Account/Payments/NewPayment/{whatever}",
new { langId = @"default", controller = @"Account", action = @"ExecuteNewPayment"});
routes.MapRoute(
@"CreateNewRuntime1",
@"{langId}/{subLangId}/Account/Payments/NewPayment/{whatever}",
new { langId = @"default", subLangId= @"test", controller = @"Account", action = @"ExecuteNewPayment1"});
Если я укажу URI /Account/Payments/NewPayment
, какой из маршрутов выбрать?Если бы MVC использовал значение по умолчанию для langId
, тогда первый маршрут всегда использовался бы, так как он был объявлен раньше другого.Если вы поменялись местами, то всегда будет вызываться второй.
Если у вас есть разные данные в начале вашего URI, вам нужно их указать, и вы не можете использовать значение по умолчанию при указании маршрута.Для прохождения этих двух маршрутов вам понадобится URI /eng/Account/Payments/NewPayment
и /eng/e/Account/Payments/NewPayment