2010-11-02 44 views
0

我有我的HomeController类中有以下功能:ASP.NET MVC C#如何使用这个功能

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> 

正如你所看到的文本均具有HTML标签。我想要做的就是使用带有item.story的Strip函数来删除这些HTML标签。之后,我想将剩余的文本截断为20文字

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua dolore...没有HTML标记的,只有约20个字长

所以我会用线沿线的东西而告终。

我如何用我当前的代码做到这一点? HomeController是Strip函数的正确位置吗?谢谢

+0

我在问什么是有道理的? – Cameron 2010-11-02 19:12:33

+0

是的。看看这两个问题:http://stackoverflow.com/questions/1613896/truncate-string-on-whole-words-in-net-c和http://stackoverflow.com/questions/1038431/how- to-clean-html-tags-using-c另外,我不会保留HomeController中的方法,你可以在Item类上创建一个方法来返回Story的清理版本,或者创建一个扩展方法。 – Brandon 2010-11-02 19:24:05

回答

5

控制器应该持有行动。你正在寻找的可能是一种扩展方法,你可以调用你的字符串。

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

UPDATE 要回答你的问题......

您可以创建一个新的类(说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" %> 

最后,您可以将c从视图中的所有扩展:

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

Okies谢谢。还有两个问题。 1)如何使用我拥有的功能创建此扩展方法。 2.)我如何在我的字符串'item.story'上调用它? – Cameron 2010-11-02 19:28:57

+0

我会更新我的答案以显示此... – Remus 2010-11-02 19:31:28

+0

这个班级去哪里?模型或控制器文件夹? – Cameron 2010-11-02 19:42:53