我正在使用带有 MVC3 的实体框架,并试图对描述字段进行搜索,但问题是描述字段中有 HTML,例如“< div class="section" />”。我可以做一个时髦的搜索,只搜索 HTML 标签之外的东西吗?
return context.Categories
.Where(i =>
i.Name.Contains(searchText)
&& i.Description.Contains(searchText)
)
提前致谢!
我正在使用带有 MVC3 的实体框架,并试图对描述字段进行搜索,但问题是描述字段中有 HTML,例如“< div class="section" />”。我可以做一个时髦的搜索,只搜索 HTML 标签之外的东西吗?
return context.Categories
.Where(i =>
i.Name.Contains(searchText)
&& i.Description.Contains(searchText)
)
提前致谢!
试试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)))