C# 存储所有<;李>;来自<;ul>;作为代码隐藏中的列表

C# 存储所有<;李>;来自<;ul>;作为代码隐藏中的列表,c#,C#,通常我会做: List<string> list = new List<string>(); foreach(string element in ul_myLst) { list.Add(element); } List List=新列表(); foreach(ul_myLst中的字符串元素) { 列表。添加(元素); } 但我真的不知道怎么做,因为它没有得到枚举器 本质上,我只想做一些版本的工作,将未排序列表的所有值存储到co

通常我会做:

List<string> list = new List<string>();
    foreach(string element in ul_myLst)
    {
        list.Add(element);
    }
List List=新列表();
foreach(ul_myLst中的字符串元素)
{
列表。添加(元素);
}
但我真的不知道怎么做,因为它没有得到枚举器


本质上,我只想做一些版本的工作,将未排序列表的所有值存储到codebehind中的列表中。如果这是重新发布,也很抱歉,但我只发现有人在列表中插入项目,而没有从列表中保存项目。

这对您有用吗

html:

  • item1
  • item2
  • item3
代码隐藏:

List<string> ListOfStuff = new List<string>();
foreach (Control item in ul_myLst.Controls)
{
   if (item is System.Web.UI.HtmlControls.HtmlGenericControl)
        {
           ListOfStuff.Add(((System.Web.UI.HtmlControls.HtmlGenericControl)item).InnerHtml); 
        }
}
HtmlGenericControl ul_myLst = (HtmlGenericControl)this.Page.FindControl("ul_myLst");

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(ul_myLst.InnerHtml);

List<string> result = doc.DocumentNode.SelectNodes("li").Select(x => x.InnerText).ToList();
List listofsuff=new List();
foreach(ul_myLst.Controls中的控制项)
{
if(项为System.Web.UI.HtmlControl.HtmlGenericControl)
{
添加(((System.Web.UI.HtmlControls.HtmlGenericControl)项).InnerHtml);
}
}

您需要一个HTML解析器来完成此操作

你可以用

标记:

<ul id="ul_myLst" runat="server">
     <li>1</li>
     <li>2</li>
     <li>3</li>
     <li>4</li>
     <li>5</li>
</ul>
  • 一,
  • 二,
  • 三,
  • 四,
  • 五,
代码隐藏:

List<string> ListOfStuff = new List<string>();
foreach (Control item in ul_myLst.Controls)
{
   if (item is System.Web.UI.HtmlControls.HtmlGenericControl)
        {
           ListOfStuff.Add(((System.Web.UI.HtmlControls.HtmlGenericControl)item).InnerHtml); 
        }
}
HtmlGenericControl ul_myLst = (HtmlGenericControl)this.Page.FindControl("ul_myLst");

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(ul_myLst.InnerHtml);

List<string> result = doc.DocumentNode.SelectNodes("li").Select(x => x.InnerText).ToList();
HtmlGenericControl ul_myLst=(HtmlGenericControl)this.Page.FindControl(“ul_myLst”);
HtmlAgilityPack.HtmlDocument doc=新的HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(ul_myLst.InnerHtml);
列表结果=doc.DocumentNode.SelectNodes(“li”).Select(x=>x.InnerText.ToList();
这将为您提供一个包含以下内容的列表:

123445


我的
      上的id我使用NuGet添加HTMLAgilityPack,但在doc.LoadHtml(ul\u myLst.InnerHtml)上失败;表示对象不是对象的实例。它将HTMLAgilityPack视为一个名称空间,我需要添加引用还是什么?不需要,因为它会在agility pack对象的实例化上失败。您是否检查过对象
      ul\u myLst
      是否为空?我在该标记中的任何位置都看不到ID为或运行在服务器上的
      ?您需要像我的示例中那样添加id并在服务器上运行,以便代码可以访问它。或者,您可以将整个HTML文档传递给
      doc.LoadHtml()
      调用,该调用仍然有效。这对我不起作用,但谢谢。