0

我正在使用带有 MVC3 的实体框架,并试图对描述字段进行搜索,但问题是描述字段中有 HTML,例如“< div class="section" />”。我可以做一个时髦的搜索,只搜索 HTML 标签之外的东西吗?

return context.Categories
    .Where(i => 
        i.Name.Contains(searchText)
        && i.Description.Contains(searchText)
    )

提前致谢!

4

1 回答 1

0

试试HtmlAgilityPack 。它具有从 HTML 文档中提取文本的方法。

您基本上只需要执行以下操作:

  var doc = new HtmlDocument();
  doc.LoadHtml(htmlStr);
  var node = doc.DocumentNode;
  var textContent = node.InnerText;

或者不那么棒的方法:

public static string StripHTML(string htmlString)
{
   string pattern = @"<(.|\n)*?>";
   return Regex.Replace(htmlString, pattern, string.Empty);
}

全部一起

return StripHTML(context.Categories.Where(i => i.Name.Contains(searchText)&& i.Description.Contains(searchText)))
于 2013-06-21T02:00:23.500 回答