C#.NET 4.0通过使用filestream或streamreader读取.aspx页面来获取Web元素的ID值

时间:2011-09-12 21:48:29

标签: filestream webpage streamreader prerender

所以这就是问题我正在编写一个程序,它将在渲染之前查看localhost上的文件夹。我希望能够获取Web元素的ID值并将其存储在列表对象中。

例如,我有一个页面:

<html>
<body>

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

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

</body>
</html>

程序将转到C:\ WebFolder \ Page.aspx,然后将读取该文件并在页面上找到每个CustomControl,然后获取控件类型(MyPhoneValidationControl或MyEmailValidationControl),然后分配ID的值(PhoneValidator ,EmailValidator)作为Control对象的属性。

我正在使用C#.NET 4.0。在呈现页面后很容易获取元素的ID,但它不显示它是自定义控件。要查看自定义控件,您需要查看.aspx文件,而不是由Web服务器(IIS等)呈现

1 个答案:

答案 0 :(得分:2)

我通过将页面数据填充到字符串然后使用

来解决这个问题
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获取类型和ID。