所以我正在做的是从文本文件中获取标题的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文件中。 对于那些可以请你帮助的人,请给我一个理由。
答案 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.
感谢每个人都没有输入,你们都是明星!