asp.net-mvc - T4MVC 没有生成常量?

标签 asp.net-mvc 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")]

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

最佳答案

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

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

对于 Controller 名称:MVC.Home.Name
对于 Action 名称:MVC.Home.ActionNames.About
对于 View 名称:MVC.Home.Views.About

关于asp.net-mvc - T4MVC 没有生成常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6470659/

相关文章:

asp.net-mvc-3 - 为什么 T4MVC 引入虚拟 Controller 操作?

asp.net-mvc - 将 T4MVC 和 Kendo UI 用于 ASP.NET MVC

model-view-controller - 将 T4MVC 与构建脚本一起使用

asp.net - 重命名 Controller asp.net mvc

asp.net-mvc - 起订量中的验证()有多可靠?

c# - 为 WebForms 网站项目添加 MVC 支持

c# - 在 View 中生成新 anchor 时,我可以强制 T4MVC 不要从当前 View 的 URL 中获取参数吗?

asp.net-mvc - 如何在VS2019中自定义Docker镜像名称

c# - MVC 会取代传统的手动创建的 BLL 吗?

asp.net-mvc - 来自基本 Controller 的 RedirectToAction