Page.ParseControl查找HTMLImage

时间:2009-09-02 08:33:53

标签: asp.net

我在网页上有一个richtext文本框,用于创建电子邮件模板。此文本框将HTML作为字符串返回。我需要从HTML获取所有图像的来源,以便图像可以存储在数据库中。返回HTML后,图像已加载到服务器,新路径已用作图像源。

我想解析控件,如下所示遍历控件,找到保存到数据库的图像并将源更改为新值。

但是,在解析字符串时,除非为标记分配了runat服务器属性,否则它总是返回一个文字控件。如果服务器上的运行存在,则它正确地将控件标识为HTMLImage控件。

是否可以让页面解析所有控件,无论它们是否是服务器控件?

Dim s As String = "<P><IMG src=""http://localhost/MessageImages/14699666.jpg""></P>"

Dim cnts As Control = Page.ParseControl(s)

For Each c As Control In cnts.Controls
   If TypeOf c Is System.Web.UI.HtmlControls.HtmlImage Then
        Dim src As String = CType(c, HtmlImage).Src
        'TODO: Save image to database
        'TODO: Change source 
   End If
Next

1 个答案:

答案 0 :(得分:2)

在我看来,你最好使用像HTML Agility Pack之类的东西来解析编辑器中的原始HTML。由于它与纯HTML一起使用,因此您无需担心控件是服务器控件还是HTML控件等。