Почему в сгенерированном коде T4MVC нет строк-констант? Я предполагаю, что это будет копирование постоянных значений во время компиляции...
Но добавление констант в сгенерированный код позволит использовать сгенерированные T4MVC вещи в атрибутах.
Я думаю о чем-то вроде этого:
вставить @строку 400:
public const String ControllerNameCONST = @"<#=controller.ClassName #>";
вставьте @строку 445:
[<#= GeneratedCode #>, DebuggerNonUserCode]
public static class ActionNamesCONST {
<#foreach (var method in controller.ActionMethodsWithUniqueNames) { #>
<# if (UseLowercaseRoutes) { #>
public const string <#=method.ActionName #> = (<#=method.ActionNameValueExpression #>).ToLowerInvariant();
<# } else { #>
public const string <#=method.ActionName #> = <#=method.ActionNameValueExpression #>;
<# }
} #>
}
Так что кто-то может использовать это так:
[SomeAttribute(HomeController.ControllerNameCONST)]
//instead of
[SomeAttribute("Home")]
//or
[SomeAttribute(HomeController.ActionNamesCONST.SomeAction)]
//instead of
[SomeAttribute("SomeAction")]
Изменить: использовал его как атрибут автозаполнения в модели, поэтому в модели можно указать «целевой» контроллер и действие. Хотя можно было бы переработать атрибут автозаполнения, чтобы он принимал ActionResult в качестве параметра вместо имен контроллера + действия...