【问题标题】:How do I get the Area (or the path) of where a View is being scaffolded?如何获取视图搭建的区域(或路径)?
【发布时间】:2014-05-27 20:04:16
【问题描述】:

问题:

我正在为脚手架视图自定义 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 使用约定优于配置,如果我有办法获取正在创建的视图文件的路径,我可以获取该区域(如:

/Areas/[Area Name]/Views/

所以问题归结为:

问题:

如何获取 T4 ASP.NET MVC 脚手架创建视图的路径?

【问题讨论】:

    标签: t4 asp.net-mvc-areas asp.net-mvc-scaffolding


    【解决方案1】:

    我已经通过使用 ViewBag.AreaName 中的 AreaName 属性(在控制器的 T4 模板中可用)并在视图中读取它来解决这个问题。

    不漂亮,但它会工作。

    但是,我很快就会知道如何访问在我的 T4 代码中创建文件的区域。请参阅我的问题的编辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-23
      • 2017-01-02
      • 2023-03-03
      • 2018-10-18
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      • 2022-08-08
      相关资源
      最近更新 更多