Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET MVC#如何使用此功能_C#_Asp.net Mvc - Fatal编程技术网

ASP.NET MVC#如何使用此功能

ASP.NET MVC#如何使用此功能,c#,asp.net-mvc,C#,Asp.net Mvc,我的HomeController类中有以下函数: public class HomeController : Controller { public string Strip(string text) { return Regex.Replace(text,@"<(.|\n)*?>",string.Empty); } 公共类HomeController:控制器 { 公共字符串条(字符串文本) { 返回

我的HomeController类中有以下函数:

public class HomeController : Controller
    {

        public string Strip(string text)
        {
            return Regex.Replace(text,@"<(.|\n)*?>",string.Empty);
        }
公共类HomeController:控制器
{
公共字符串条(字符串文本)
{
返回Regex.Replace(text,@“”,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>
Lorem ipsum door sit amet,conception adipsicing elit,sed do eiusmod temporal incident ut labour and dolore magna aliqua.但是,如果是最低限度的话,quis nostrud execution ullamco laborary nisi ut aliquip out ea commodo consequence.

Lorem ipsum ipsum door sitor site amet,conception adipsiging elit,sed adipsiging elit,sed and magna,sed elit,sed eiusmod temporal ement to等等,多洛尔·马格纳·阿利夸

正如您所看到的,文本中始终有HTML标记。我要做的是使用item.story的Strip函数删除这些HTML标记。之后,我要将剩余文本截断为20个单词

因此,我将以以下几点作为结束:

Lorem ipsum Door sit amet,Concertetur Adipising elit,sed do eiusmod Temporal Incidedut ut Laboure et dolore magna aliqua dolore…
没有HTML标签,只有约20个单词长


如何使用当前代码执行此操作?HomeController是否是Strip函数的正确位置?谢谢,控制器应该包含操作。您正在寻找的可能是一个扩展方法,您可以在字符串上调用它

您可能需要两个扩展,一个用于去除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() %>

控制器应该包含操作。您正在寻找的可能是一个扩展方法,一个可以在字符串上调用的方法

您可能需要两个扩展,一个用于去除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() %>


我所问的有意义吗?是的。看看这两个问题:而且,我不会将方法保留在HomeController中,你可以在Item类上创建一个方法来返回故事的清理版本,或者创建一个扩展方法。我所问的有意义吗?是的。看看这两个问题:而且,我也不会将这些方法保留在HomeController中,您可以在Item类上创建一个方法以返回清理后的Story版本,或者创建一个扩展方法。好的,谢谢。还有两个问题。1)如何使用我拥有的函数创建此扩展方法。2)如何在我的字符串
Item.Story
上调用此方法?此类去哪里?Models还是CControllers文件夹?我通常将我的文件夹放在模型和控制器之外。我将有一个类似于Util或Common的名称空间,我会将这些类型的文件放在其中。这里有一个关于这个主题的讨论:非常棒,它可以工作,谢谢。ASP.NET和C#对我来说是新的,所以所有这些都是非常复杂的东西。这里可能值得指出的是,扩展方法在第一个参数前面有关键字“this”的静态类中重新设置静态方法。这使该方法可以像直接在第一个参数类型的对象上一样使用。但是,它无法访问对象类型的内部字段的私有字段。谢谢。还有两个问题。1)如何创建这个扩展方法使用我拥有的函数。2。)我如何在我的字符串
项上调用它。story
?这个类去哪里了?Models或Controllers文件夹?我通常将我的放在Models和Controllers文件夹之外。我将有一个类似于Util或Common的命名空间,我将把这些类型的文件放在其中。下面是关于这个主题的讨论:Awesome got t感谢。ASP.NET和C#对我来说是新的,所以所有这些都是非常复杂的东西。这里可能需要指出的是,扩展方法是静态类中的静态方法,在第一个参数前面有关键字“this”。这使得该方法可以像直接在第一个参数类型的对象上一样使用。它但是,无法访问其正在扩展的对象类型的内部字段的私有字段