This post shows you how to create an extension method for returning formatted HTML from a string input
For example if we wanted to make dolor sit be bold in the below text.
Lorem ipsum *dolor sit* amet
The result will be
Lorem ipsum dolor sit amet
using System.Web; using System.Web.Mvc;
namespace CodeShare.Library { public static class HtmlExtensions { /// This HTML extension method replaces characters with HTML tags public static IHtmlString ReplaceStringWithHtmlTags(this HtmlHelper helper, string originalText, string toMatch, string tagToReplaceWith, string className = "") { string result = originalText;
if (!string.IsNullOrEmpty(result) && !string.IsNullOrEmpty(toMatch) && !string.IsNullOrEmpty(tagToReplaceWith)) { int firstInstance = originalText.IndexOf(toMatch); int lastInstance = originalText.LastIndexOf(toMatch); if (lastInstance > firstInstance) { result = originalText.Remove(lastInstance, toMatch.Length).Insert(lastInstance, string.Format("</{0}>", tagToReplaceWith)); } if (firstInstance >= 0) { if (!string.IsNullOrEmpty(className)) { result = result.Remove(firstInstance, toMatch.Length).Insert(firstInstance, string.Format("<{0} class=\"{1}\">", tagToReplaceWith, className)); } else { result = result.Remove(firstInstance, toMatch.Length).Insert(firstInstance, string.Format("<{0}>", tagToReplaceWith)); } } }
return MvcHtmlString.Create(result); } } }
Here is the usage example:
string inputText = "Lorem ipsum *dolor sit* amet" @Html.ReplaceStringWithHtmlTags(inputText, "*", "strong")
And it will return Html like this:
Lorem ipsum <strong>dolor sit</strong> amet
There is an optional className parameter too, in case you need to add a class to the html element.
Umbraco MVP and .NET Web Developer from Derby (UK) who specialises in building Content Management System (CMS) websites using MVC with Umbraco as a framework. Paul is passionate about web development and programming as a whole. Apart from when he's with his wife and son, if he's not writing code, he's thinking about it or listening to a podcast about it.
This post will show you how to solve the error "Could not load file or assembly 'Microsoft.CodeDom.P…
Read PostIn this post I show you how easy Donut Caching is to use in Umbraco and MVC. It's very clever and no…
Read PostIn this post I give you step by step instructions for getting Umbraco v8 forked, checked out and wor…
Read PostThis post shows you how you can easily add a default value to a property when using the editor in th…
Read Post