【问题标题】:$(selector).text() equivalent in c# (Revised)c# 中的 $(selector).text() 等效项(修订版)
【发布时间】:2011-02-15 11:40:29
【问题描述】:

我正在尝试检查元素的内部 html 是否为空,但我想在服务器端进行验证,我将 html 视为字符串。这是我的代码

public string HasContent(string htmlString){
    // this is the expected value of the htmlString

    //  <span class="spanArea">
    //      <STYLE>.ExternalClass234B6D3CB6ED46EEB13945B1427AA47{;}</STYLE>
    //  </span>

    // From this jquery code-------------->
    // if($('.spanArea').text().length>0){
    //  
    // }
    // <------------------
    // I wanted to convert the jquery statement above into c# code. 

    /// c# code goes here
    return htmlSTring;
}

使用这条线

$('.spanArea').text() // what is the equivalent of this line in c#

我会知道 .spanArea 是否真的可以在 ui 中显示某些内容。我想在服务器端进行检查。无需担心如何访问我已经处理过的 DOM。将 htmlString 视为 Html 字符串。

我的问题是在 C# 中这个 jquery 行是否有任何等价物?

提前致谢! :)

【问题讨论】:

  • 是的,我想在c#后面的代码中检查spanArea的内部文本是否为空
  • 请为您的 AJAX 调用提供服务的页面发布代码。
  • C# 在服务器上运行,它无法直接访问 DOM,因此您唯一的选择是通过添加 runat="server" 将所需元素放在服务器端,然后您可以在此处遵循其他建议。 :)
  • @Shadow Wizard:不,在计算中总是有第二种选择。
  • @yoda 如果你找到了一种直接使用 C# 代码访问 DOM 元素的方法,那么你就是 yoda! ;)

标签: c# jquery asp.net sharepoint sharepoint-2007


【解决方案1】:

如果您确实需要从服务器端的 HTML 中获取该数据,那么我建议您使用 Html-Parser 来完成这项工作。

如果你查看other SO posts,你会发现Html Agility Pack被推荐了很多次。

【讨论】:

    【解决方案2】:

    使用 runat="server" 标记 SpanArea,然后您可以在后面的代码中访问它:

    <span id="mySpan" class="spanArea" runat="server" />
    

    然后你可以:

    string spanContent = mySpan.InnerText;
    

    【讨论】:

    • 有人愿意解释否决票吗?我假设操作员想要在回发后检查跨度
    • 可能是因为类名。您可以删除“。”从类名以来。代表阶级。所以 .spanArea 表示类名为“spanArea”的对象。如果是#spanArea,则表示 ID 为 spanArea 的对象。
    • 不知何故这种方法有效,但不是我的目的,我正在做一个 webpart 的事情,我正在将纯 html 内容作为字符串传递......还有其他方法吗?感谢路易斯的帮助:)
    【解决方案3】:

    在执行 AJAX 调用之前,包含此 AJAX 调用的页面的代码隐藏已经执行(将页面呈现给浏览器),因此您的问题看起来不正确。

    提供您指示的 HTML 片段的代码隐藏可能是使用 StringBuilder 或类似方法构建的,因此您应该能够在该代码中验证是否有任何数据。

    您提供的片段仅包含DIVSPANSTYLE 标签。这很可能会折叠成零宽度元素并且什么都不显示。

    看看这篇文章,它会帮助你理解ASP.NET page life cycle

    【讨论】:

    • 你为什么假设 op 不想在 postack 期间进行检查?
    • OP 在哪里指示任何回发?生成的页面包含进行 AJAX 调用以返回 OP 希望在其中验证某些内容的片段的 javascript。如果 OP 拥有提供 AJAX 内容的服务器页面,那么他可以在创建该段时验证需要 runat="server" 的数据。如果没有,那么他们在主页的代码隐藏中无能为力,因为它已经执行并被处理掉了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2014-09-13
    • 2010-11-13
    • 2011-10-09
    • 2013-11-21
    • 2017-07-06
    相关资源
    最近更新 更多