MVC3 EF搜索数据库字段但剥离HTML

时间:2013-06-21 01:55:30

标签: asp.net-mvc asp.net-mvc-3 entity-framework

我正在使用MVC3的实体框架,我正在尝试对描述字段进行搜索,但问题是描述字段中包含HTML,例如“< div class =”section“/>”。我可以进行时髦的搜索,只搜索HTML标记之外的内容吗?

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

提前致谢!

1 个答案:

答案 0 :(得分: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)))