更改HTML中我从文本文件中获取的文本

时间:2017-12-07 03:47:27

标签: c# html asp.net html5

所以我正在做的是从文本文件中获取标题的HTML代码。

但是,一旦用户登录,我希望它说欢迎"用户名"在顶部,这是帐户设置,购物车等的下拉菜单......

因为我在页面加载时将HTML插入DIV,所以我实际上无法访问C#中的任何元素。

我该怎么做呢? 无论如何在从文本文件加载之后访问类似于(p id =" name")的内部文本?

想用C#做这个而不是JS。

编辑:我现在有一个解决方法,但如果有可能,我仍然可以使用帮助,谢谢!

 headerText = headerText.Replace("::Username::", Session["Username"] as string);

以下是我抓取HTML并将其粘贴的代码。

string headerText = File.ReadAllText(Server.MapPath("~/global/header.html"));
        string footerText = File.ReadAllText(Server.MapPath("~/global/footer.html"));

        headerText = headerText.Replace("::Username::", Session["Username"] as string);

        divHeader.InnerHtml = headerText;
        divFooter.InnerHtml = footerText;

更清楚的是,无论如何都要访问类似

的内容
 <asp:Panel ID="panelAccount" runat="server">

存储在另一个HTML文件中。 对于那些可以请你帮助的人,请给我一个理由。

2 个答案:

答案 0 :(得分:0)

我之前在C#中做过类似的工作,我使用HTMLAgilityPack来完成这类工作。后来我开始使用Anglesharp,因为它有一个非常好的基于CSS选择器的支持。

尝试使用anglesharp,您可以像修改jQuery一样修改HTML标记。

答案 1 :(得分:0)

尽管我喜欢Adrians的回应,但我发现了一种更好的方法来做我需要做的事情,我可以用MasterPage做。我绝对会使用Adrians的答案,因为它仍然有效。

然后在与母版页关联的C#文件中创建一个这样的属性。

 public Panel PanelAccount
    {
        get { return panelAccount; }
        set { panelAccount = value; }
    }

然后从常规WebForm中,您可以调用“PanelAccount”来访问该属性。

Here is a tutorial for how to do that.

感谢每个人都没有输入,你们都是明星!