1

所以这是我正在编写一个程序的问题,该程序将在呈现之前查看本地主机上的文件夹。我希望能够获取 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 等)呈现

4

1 回答 1

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

这会将控件捕获到一个列表中,然后我可以在将整个控件列表传递给控件构造函数后,使用属性中的正则表达式解析字符串列表以获取类型和 ID。

于 2011-09-13T18:19:33.910 回答