C# .NET 4.0 Ottieni il valore di un ID di un elemento Web leggendo la pagina .aspx con FileStream o StreamReader

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

Domanda

Quindi, ecco il problema che sto scrivendo un programma che esaminerà la cartella sul LocalHost prima che sia reso. Voglio essere in grado di ottenere il valore dell'ID di un elemento Web e archiviarlo in un oggetto List.

Ad esempio ho una pagina:

<html>
<body>

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

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

</body>
</html>

Il programma andrà su C: WebFolder Page.aspx e quindi leggerà il file e troverà ogni Control personalizzato nella pagina e quindi prenderà il tipo di controllo (MyPhoneValidationControl o MyEmailValidationControl) e quindi assegnano il valore dell'ID (Phonevalidator, EmailValidator) come proprietà dell'oggetto di controllo.

Sto usando C#.NET 4.0. Ottenere l'ID dell'elemento è facile dopo che la pagina è stata resa ma non mostra che si tratta di un controllo personalizzato. Per vedere il controllo personalizzato devi guardare il file .aspx senza che sia reso da un server Web (IIS, ecc.)

È stato utile?

Soluzione

Mi sono risolto questo riempiendo i dati della pagina in una stringa e poi usando

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)
}

Questo prende il controllo in un elenco e quindi posso analizzare l'elenco delle stringhe per ottenere il tipo e l'ID utilizzando Regex nelle proprietà dopo aver trasmesso l'intero elenco di controllo al costruttore di controlli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top