我正在为脚手架视图定制MVC 5模板。
我需要能够获取正在创建视图的区域的区域名称。
EG,我希望能够为Url Action参数设置变量areaName的值:
Url.Action("Index", "<#= ViewDataTypeShortName#>s", new { area = "<#= areaName #>", page<#= ViewDataTypeShortName#>s = x }), ViewContext, NormalizePath("~/Areas/<#= areaName #>/Views/<#= ViewDataTypeShortName#>s/"))
在控制器中,我可以这样做:
<#
var areaName = GeneratedTextTransformation.AreaName;
#>
但是在View T4模板中,这不可用。
那么我如何得到我正在创建视图的区域的名称?
因为MVC使用约定优于配置,所以如果我有办法获取正在创建的View文件的路径,我可以获得该区域(如:
/Areas/[Area Name]/Views/
所以问题简化为:
如何获取T4 ASP.NET MVC脚手架创建View的路径?
答案 0 :(得分:0)
我已经通过在ViewBag.AreaName中使用AreaName属性(在控制器的T4模板中可用)并在视图中读取它来解决这个问题。
不漂亮,但它会起作用。
但是,我很快就会知道如何在我的T4代码中访问正在创建文件的区域。请参阅我的问题的编辑。