我的ASP.NET-Core 2.2 MVC应用程序的剃须刀页面视图中包含以下代码
<p>
@{
if(course.Description.Length > 100)
{
@course.Description.Substring(0, 100) @:"..."
}
else
{
@course.Description;
}
}
</p>
但这给了他以下错误
错误CS1525无效的表达式术语'>'
我不知道该如何解决。如果可以的话,请帮助我。
谢谢
答案 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首先拥有@,