C # .NET 4.0 Получить значение идентификатора веб-элемента, читая страницу .aspx с помощью filestream или streamreader - PullRequest
1 голос
/ 13 сентября 2011

Итак, вот в чем проблема: я пишу программу, которая просматривает папку на локальном хосте до ее рендеринга. Я хочу иметь возможность получить значение идентификатора веб-элемента и сохранить его в виде списка.

Например, у меня есть страница:

<html>
<body>

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

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

</body>
</html>

Программа перейдет в C: \ WebFolder \ Page.aspx, затем прочитает файл и найдет каждый CustomControl на странице, а затем возьмет Control Type (MyPhoneValidationControl ИЛИ MyEmailValidationControl) и затем назначит значение идентификатора (PhoneValidator). , EmailValidator) как свойство объекта Control.

Я использую C # .NET 4.0. Получить идентификатор элемента легко после рендеринга страницы, но это не означает, что это пользовательский элемент управления. Чтобы увидеть пользовательский элемент управления, вам нужно просмотреть файл .aspx без его отрисовки веб-сервером (IIS и т. Д.)

1 Ответ

2 голосов
/ 13 сентября 2011

Я решил это, вставив данные страницы в строку, а затем используя

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

Это ловит элемент управления в список, и затем я могу проанализировать список строк, чтобы получить тип и идентификатор, используя Regex в свойствах после передачи всего списка элементов управления в конструктор элементов управления.

...