我正在从.NET Framework迁移到.NET 5.0,并且我正在尝试使用Razor视图中的变量,就像普通的asp MVC一样,@page
变量中存在语法错误
错误:“@page”指令必须位于Razor文件中定义的所有其他元素之前。
错误:“page”指令必须出现在行的开头。
错误:“page”指令值必须用空格分隔。
代码:
@for (var page = Model.Pager.StartPage; page <= Model.Pager.EndPage; page++)
{
if (page == Model.Pager.CurrentPage)
{
<li class="active"><span style="line-height:20px">@page</span> </li>
}
else
{
<li><a href="@Url.Action("Index","Blogs",new { page = @page,pageSize=10 })">@page</a></li>
}
}
对于razor pages,@Page是一个保留字,应该在第一行。您不应将其用于自定义代码:
因此,像这样重写代码:
@page
..... your html
@for (var pg = Model.Pager.StartPage; pg <= Model.Pager.EndPage; pg++)
{
if (pg == Model.Pager.CurrentPage)
{
<li class="active"><span style="line-height:20px">@pg</span> </li>
}
else
{
<li><a href="@Url.Action("Index","Blogs",new { pg = @pg , pageSize=10 })">@pg</a></li>
}
}
使用simple page或@(page)代替@page,错误将被解决。