CS1525在剃刀视图页面ASP.NET-core 2.2中无效的表达式术语'>'

时间:2019-04-23 07:46:34

标签: c# asp.net-mvc asp.net-core razor asp.net-core-2.2

我的ASP.NET-Core 2.2 MVC应用程序的剃须刀页面视图中包含以下代码

<p> 
   @{ 
      if(course.Description.Length > 100)
      {
       @course.Description.Substring(0, 100)  @:"..."
      }
      else
      {
      @course.Description;
      }
    }
 </p>

但这给了他以下错误

  

错误CS1525无效的表达式术语'>'

我不知道该如何解决。如果可以的话,请帮助我。

谢谢

3 个答案:

答案 0 :(得分:0)

我认为您的if语句中的“课程”缺少“ @”。 试试:

<p> 
      @{ 
      if(@course.Description.Length > 100)
      {
       @course.Description.Substring(0, 100)  @:"..."
      }
      else
      {
      @course.Description;
      }
    }
 </p>

答案 1 :(得分:0)

您的代码对我来说很好。

不过,这是一种更为简洁的编写方式。看看它是否对您有用:

<p>
    @if (course.Description.Length > 100)
    {
        @course.Description.Substring(0, 100) @:"..."
    }
    else
    {
        @course.Description
    }
</p>

如果仍然有问题,Razor页面中的周围代码可能有其他问题,或者您的项目没有引用正确的程序集?尝试在一个空白的新ASP.NET项目中运行相同的代码。

答案 2 :(得分:0)

这个@编译器的有趣之处在于它无法确定何时异常使用 如果我这样使用它

@functions{
    public IHtmlContent RenderSubButton(ButtonModel button)
    {
        var @appIcn = "blabla";

        return @Html.Raw(@"<a href='@Url.Action(" + button.Action + ", " + button.Controller + ", " + button.RouteValues + ")' class='" + button.Class + "' " + button.Binding.ToDataAttributes() + ">"
           + button.Text
           + @appIcn + "</a>");
        }
}

appIcon不起作用,但是如果我使用

@functions{
    public IHtmlContent RenderSubButton(ButtonModel button)
    {
        var @appIcn = "blabla";

        return @Html.Raw(@"<a href='@Url.Action(" + button.Action + ", " + button.Controller + ", " + button.RouteValues + ")' class='" + button.Class + "' " + button.Binding.ToDataAttributes() + ">"
           + button.Text
           + appIcn + "</a>");
        }
}

然后它将起作用。区别在于appIcn首先拥有@,