C # .NET 4.0 Obtenez la valeur d'un identifiant d'un élément Web en lisant la page .aspx avec filtream ou StreamReader

StackOverflow https://stackoverflow.com/questions/7394460

Question

Voici donc le problème que j'écris un programme qui va parcourir le dossier sur le localhost avant qu'il ne soit rendu.Je veux pouvoir obtenir la valeur de l'ID d'un élément Web et le stocker dans un objet de liste.

Par exemple, j'ai une page:

<html>
<body>

<CustomControl:MyPhoneValidationControl ID="PhoneValidator" validationgroup="PageValidation" />

<CustomControl:MyEmailValidationControl ID="EmailValidator" validationgroup="PageValidation" />

</body>
</html>

Le programme ira à C: \ webfolder \ page.aspx, puis lisez le fichier et retrouvez tout personnalisé de la page de la page, puis prenez le type de commande (MyPhonevalidationControl ou myemailValidationControl), puis affectez la valeur de l'ID (PhoneValidator, E-mailValidator) en tant que propriété de l'objet de contrôle.

J'utilise C # .NET 4.0.Obtenir l'identifiant de l'élément est facile après que la page soit rendue mais elle ne montre pas qu'il s'agit d'un contrôle personnalisé.Pour voir le contrôle personnalisé, vous devez regarder le fichier .aspx sans qu'il soit rendu par un serveur Web (IIS, etc.)

Était-ce utile?

La solution

Je me suis résolu à cela en tapabissant les données de la page dans une chaîne, puis en utilisant

string page = new StreamReader(page).ReadToEnd();
List<string> control = new List(string)();
MatchCollection matchControl = Regex.Matches(text, "expression");
foreach (Match match in matchControl)
{
  control.Add(match.Value)
}

Cela attire la commande à une liste, puis je peux analyser la liste des chaînes pour obtenir le type et l'identifiant à l'aide de RegEx dans les propriétés suivant la transmission de la liste de contrôle entière sur le constructeur de commande.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top