代码之家  ›  专栏  ›  技术社区  ›  Cameron

如何使用此功能

  •  0
  • Cameron  · 技术社区  · 14 年前

    我的HomeController类中有以下功能:

    public class HomeController : Controller
        {
    
            public string Strip(string text)
            {
                return Regex.Replace(text,@"<(.|\n)*?>",string.Empty);
            }
    

    在我看来,我要展示一篇来自数据库的文章:

    <%= item.story %>
    

    典型的文章如下:

    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea <em>commodo consequat</em>.</p> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
    

    20字 .

    所以我最终会得出如下结论:

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua dolore... 20字长 .

    如何使用当前代码执行此操作?家庭控制器是否是带功能的正确位置?谢谢

    1 回复  |  直到 12 年前
        1
  •  5
  •   Remus    14 年前

    控制器应保持动作。你要找的可能是一个扩展方法,一个可以在字符串上调用的方法。

    您可能需要两个扩展名,一个用于去掉HTML标记,另一个用于创建段落的20字短格式版本。

    更新 回答你的问题。。。

    您可以创建一个新类(比如ParagraphExtension.cs)并将字符串扩展放入该类:

    namespace myApp.Util.Extensions
    {
          public static class ParagraphExtension
          {
               public static string RemoveHTMLTags(this string content)
               {
                       // insert code
               }
    
               public static string ShortFormParagraph(this string content)
               {
                       // insert code
               }
           }
    }
    

    在您的视图中,然后可以导入在其中找到该类的命名空间:

    <%@ Import Namespace="myApp.Util.Extensions" %>
    

    最后,可以从视图中调用扩展:

    <%= item.story.RemoveHTMLTags().ShortFormParagraph() %>