如何自定義MVC的Helper擴展方法

資料在資料庫中有斷行符號,但從controller撈出後View的呈現卻沒辦法呈現斷行

這時候只好自定義擴展方法來達成

自定義擴展方法
  1.  在專案新增資料夾新增一個class 
  2. using System.Web.MVC
  3. 記得改成static class 跟 static method
    namespace PlantCatalog.HtmlHelpers
    {
        public static class HelperExtendMethods
        {
    
            public static MvcHtmlString DisplayWithBreaksFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
            {
                var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
                var model = html.Encode(metadata.Model).Replace("\r", "").Replace("\n","<br />");
                if (String.IsNullOrEmpty(model)) return MvcHtmlString.Empty; return MvcHtmlString.Create(model);
            }
        }
    }

     

View

 razor 就可以使用這個擴充方法囉~

 @Html.DisplayWithBreaksFor(model => model.LiveNote)

參考資料

  1. http://www.dovov.com/html-displayfor-3.html
  2. https://www.cnblogs.com/insus/p/3379485.html