c# - ASPX 页面的类似 SlowChetah 的转换?

标签 c# asp.net dynamic transformation

是否有一种可接受的方法可以根据在 Visual Studio 中选择的配置生成 ASPX 页面的 HTML/ASP 部分(而不是隐藏的代码)?例如,我想在我的开发登录页面上显示不同的标题图形(一个通知用户他们正在查看开发的标题),并为生产构建显示不同的图形。

我使用 SlowChetah 来转换我的配置文件,所以我的第一个想法是对 ASPX 页面使用类似的东西,但我还没有找到关于那种功能或特性的任何信息。

最佳答案

这可以使用 T4 text templates 来实现结合 DTE 对象,如 Accessing Visual Studio or other Hosts from a T4 Text Template 底部所述, 以获取当前构建配置并生成所需的 ASPX 部分:

<#@ template hostspecific="true" #>
<#@ output extension=".aspx" #>
<#@ assembly name="EnvDTE" #>
<#@ import namespace="EnvDTE" #>
<#
// Get the environment object
IServiceProvider serviceProvider = (IServiceProvider)Host;
DTE dte = serviceProvider.GetService(typeof(DTE)) as DTE;

// Get the active build configuration object
var activeConfiguration = dte.Solution.SolutionBuild.ActiveConfiguration;

// Generate customized ASPX content
if (activeConfiguration.Name == "Debug")
{
#>

<h1>Debug</h1>

<#
}
else
{
#>

<h1>Release</h1>

<#
}
#>

然后模板的输出可以包含在实际的 ASPX 页面中,例如通过 Literal 控件,或作为用户控件。

关于c# - ASPX 页面的类似 SlowChetah 的转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9089295/

相关文章:

c# - 运行时 ASP.NET 确认对话框

c# - 在 RowCommand 中获取 GridView Cell 的值

php - 动态缩放图像以适应指定尺寸的宽度和高度

c++ - 读取txt文件的行和列的最佳方法

c# - 'Microsoft.AspNet.SignalR.Hubs.ClientProxy' 不包含 'broadcastMessage' 的定义

c# - 元素内容显示在设计时而不是运行时

c# - 打开 PDFSharp 文档并保存删除密码

c# - 返回部分 View 并将其附加到 index.cshtml View Mvc4 中的 div

javascript - 从所选选项动态更新价格 js 或 jquery

c# - 将 8 位数字转换为日期时间类型