Je suis en train d'obtenir les noms de dossier dans le dossier Vues utilisant le modèle T4 et il continue à me donner les erreurs suivantes:T4 Modèle et Server.MapPath
Erreur 3 transformation Compiler: Le nom « serveur » n'existe pas dans le contexte actuel c: \ Projects \ LearningASPMVC \ LearningASPMVCSolution \ LearningMVC \ StronglyTypedViews.tt 20 47
Erreur 4 Un espace de noms ne contient pas directement des membres tels que des champs ou des méthodes C: \ Projects \ LearningASPMVC \ LearningASPMVCSolution \ LearningMVC \ StronglyTypedViews.cs 1 1 LearningMVC
Voici le modèle T4:
<#@ template language="C#" debug="True" hostspecific="True" #>
<#@ output extension=".cs" #>
<#@ assembly name="System.Web" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Web" #>
using System;
namespace StronglyTypedViews
{
<#
string[] folders = Directory.GetDirectories(Server.MapPath("Views"));
foreach(string folderName in folders)
{
#>
public static class <#= folderName #> { }
<# } #>
}
MISE À JOUR: obtenu ce travail en utilisant le chemin physique:
<#@ template language="C#" debug="True" hostspecific="True" #>
<#@ output extension=".cs" #>
<#@ assembly name="System.Web" #>
<#@ assembly name="System.Web.Mvc" #>
<#@ import namespace="System.Web.Mvc" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Web" #>
using System;
namespace StronglyTypedViews
{
<#
string viewsFolderPath = @"C:\Projects\LearningASPMVC\LearningASPMVCSolution\LearningMVC\";
string[] folders = Directory.GetDirectories(viewsFolderPath + "Views");
foreach(string folderName in folders)
{
#>
public static class <#= System.IO.Path.GetFileName(folderName) #> {
<#
foreach(string file in Directory.GetFiles(folderName)) {
#>
public const string <#= System.IO.Path.GetFileNameWithoutExtension(file) #> = "<#= System.IO.Path.GetFileNameWithoutExtension(file).ToString() #>";
<# } #>
<# } #>
}
}
Le problème est que HttpContext.Current est null! – azamsharp