【问题标题】:HtmlAgilityPack strip html in controller ASP MVC4+HtmlAgilityPack 在控制器 ASP MVC4+ 中剥离 html
【发布时间】:2015-06-10 07:33:24
【问题描述】:

我有一个返回数据列表的索引视图。 title 参数包含 HTML 标记。当我加载这个视图时,我的标题就像<strong>title</strong>.

但是在这种情况下我不需要这些标签,所以我试图只为这个视图删除它们。我已经阅读了可以在控制器中完成的操作,您能告诉我如何使用 HtmlAgilityPack 来执行此操作吗?

控制器

public ActionResult ArchivePanel(string sortOrder, string currentFilter,string searchString,int? page)
{
...
var alertMap = db.AlertMap.Include(a=>a.AlertLog).Include(a=>a.AlertMode).Include(a=>a.AlertPriority).Include(a=>a.AspNetUsers);
...
return View(alertMap.ToPagedList(pageNumber.pageSize));
}

我需要对 a.AlertLog.AlertTitle 值做这个操作

查看

<td>
@Html.DisplayFor(modelItem=>item.AlertLog.AlertTitle)
</td>

谢谢

【问题讨论】:

  • 您可以简单地将包含HTML标签的字符串加载到HAP的HtmlDocument对象中,然后访问InnerText属性以仅获取文本内容
  • 好的,我会试试这个解决方案谢谢你的回复

标签: c# asp.net-mvc html-agility-pack


【解决方案1】:

我建议您不要为此使用 HtmlAgilityPack。这是为了处理 HTML,在控制器中你不应该改变原始的 HTML。

相反,我建议在这种情况下为您的页面使用不同的视图,该视图具有您在这种情况下需要的外观和感觉。您可以将视图中与原始视图共有的部分分解为共享布局。

【讨论】:

  • 当用户创建桌面提醒消息时,我将 html 标签存储在数据库中以获取此参数。因此,当用户稍后使用 wpf 客户端应用程序阅读此消息时,他可能拥有 html 解析文本。但是在服务器端应用程序上,当用户列出deskalert 消息时,我不需要这些标签。这就是为什么我试图只为这个视图禁止标签。有没有更简单的方法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
相关资源
最近更新 更多