所以这就是问题我正在编写一个程序,它将在渲染之前查看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等)呈现
答案 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。