【问题标题】:CS1525 Invalid expression term '>' in razor view page ASP.NET-core 2.2CS1525 剃刀视图页面 ASP.NET-core 2.2 中的无效表达式术语“>”
【发布时间】:2019-09-12 08:39:13
【问题描述】:

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

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

但它给了我他以下错误

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

我不知道如何解决这个问题。如果可以,请帮助我。

谢谢

【问题讨论】:

  • @Izzy 我已经尝试了你的建议,但我没有解决问题

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


【解决方案1】:

有趣的是,这个@编译器无法决定何时使用异常,例如 如果我这样使用它

@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先有@this,不需要它

【讨论】:

    【解决方案2】:

    您的代码对我来说运行良好。

    不过,这里有一种更简洁的写法。看看它是否适合你:

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

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

    【讨论】:

    • 谢谢。只是想知道以下内容可能有什么问题,因为它也无法正常工作 @(course.Description.Length > 100) ? @course.Description.Substring(0, 100) @:... : @course.Description
    • @Josh 有两个问题:您需要在整个表达式周围添加括号,还需要将@:... 更改为+ "...",因此最终结果应如下所示:@ 987654324@希望这有帮助!
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2011-06-22
      • 2020-09-23
      • 2014-06-01
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 2016-07-03
      • 1970-01-01
      相关资源
      最近更新 更多