我正在尝试在razor页面中编写下面的简单代码,但它总是会出错。
( @gallery.Images.Count images ) // expect : ( 23 images )
但奇怪的是,下面的代码工作
(@Model.RateCount rates)
我收到编译错误而不是运行时异常
完整的cshtml页面如下所示。
@using Something.UI.Models.ViewModels
@model List<ImageGalleryUI>
<div class="albumlist">
@foreach (ImageGalleryUI gallery in Model)
{
<a href="@Html.ActionLinkRef(gallery.DisplayAction)">
<img src="@gallery.AlbumImageSrc" alt="@gallery.AlbumName" width="150px"/>
</a>
@Html.ActionLink(gallery.DisplayAction)
( @gallery.Images.Count images )
}
</div>
这是错误
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1646: Keyword, identifier, or string expected after verbatim specifier: @
Source Error:
Line 9: </a>
Line 10: @Html.ActionLink(gallery.DisplayAction)
Line 11: ( @{gallery.Images.Count} images )
Line 12: }
Line 13: </div>
答案 0 :(得分:5)
如果你在顶部没有做过这样的事情
@{
gallery = new ...
}
然后画廊不存在。
您确定不是@Model.gallery.Images.Count
吗?
修改强>
尝试替换
( @gallery.Images.Count images )
使用
@: ( @gallery.Images.Count images )
应该运作得很好。问题是Razor正在解释(作为代码的一部分,而不是作为输出的一部分。放置@:让Razor知道此行上的内容是输入应该进入响应流。
答案 1 :(得分:0)
试试这个
(@{Model.gallery.Images.Count} images)
答案 2 :(得分:0)
在我看来,你在第一个陈述中缺少模型部分
(@Model.gallery.Images.Count images )