使用MVC,请查看此示例,其中包含以下HTML代码:
<p>Duma</p><img url='..' /><p>Duma</p>
我希望仅打印标签的内容,如:Duma Duma
,删除图片,标签并仅显示文字(作为innerText)
我尝试使用Html.Raw()但它没有用。此外,我正在阅读关于类TabBuilder
并创建Html扩展方法,但我不知道如何在我的剃刀视图中实现。
答案 0 :(得分:2)
您可以使用字符串扩展来删除Html标记。
public static class StringExtensions
{
public static string StripHtml (this string inputString)
{
return Regex.Replace
(inputString, "<.*?>", string.Empty);
}
}
然后在你的视图中使用它
@myHtmlString.StripHtml()
您可能需要声明StringExtensions类的using语句或将其添加到Views文件夹中的Web.Config文件
@using My.Extensions.Namespace
OR
<system.web>
<pages>
<namespaces>
<add namespace="My.Extensions.Namespace" />
</namespaces>
</pages>
</system.web>
你也可以制作一个Html助手扩展
public static class HtmlExtensions
{
public static string StripHtml (this System.Web.Mvc.HtmlHelper helper, string htmlString)
{
return Regex.Replace
(htmlString, "<.*?>", string.Empty);
}
}
您可以在视图中使用此功能
@Html.StripHtml(myHtmlString)
您仍需要为上面的扩展方法添加对命名空间的引用。在Views文件夹中添加Web.Config或在视图中添加using语句。这里的不同之处在于,将它添加到Web.Config文件中,您将能够在所有视图中使用此扩展方法,而无需添加using语句。