繁体   English   中英

没有T4MVC生成的常量?

[英]No constants generated by T4MVC?

为什么T4MVC中没有常量字符串生成代码? 我的猜测是编译时复制常量值...

但是,在生成的代码中添加常量将允许在属性中使用T4MVC生成的东西。

我想这样的事情:

插入@line 400:

        public const String ControllerNameCONST = @"<#=controller.ClassName #>";

插入@line 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")]

编辑:将其用作模型上的自动完成属性,因此可以在模型上指定“目标”控制器和操作。 虽然可以重写autocomplete属性以将ActionResult作为参数而不是控制器+动作名称...

更新(2011年12月7日):此问题现已修复(在2.6.65中)。 请参见http://mvccontrib.codeplex.com/workitem/7177


T4MVC确实生成了许多常量。 例如

对于控制器名称: MVC.Home.Name

对于动作名称: MVC.Home.ActionNames.About

对于视图名称: MVC.Home.Views.About

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM