ユーザー コントロールのパスの取得に関して問題があります。シナリオは次のとおりです。
aspx には、複数のユーザー コントロールがあります。これらのユーザー コントロールの 1 つで、他のユーザー コントロールをループして、それらの物理パスを取得する必要があります。これを行う簡単な方法はありますか?
List<string> GetUserControlPathsForPage {
var list = new List<string>();
return getUserControlPathsRecursive(Page.Controls, list);
}
void getPathsRecursive(ControlCollection controls, List<string> list) {
foreach (var c in controls) {
var uc = c as UserControl;
if (uc != null) {
list.Add(Server.MapPath(uc.AppRelativeVirtualPath));
}
getPathsRecursive(c.Controls,list);
}
}