【问题标题】:How to use variables in Asp .NET Core MVC within cshtml view?如何在 cshtml 视图中使用 Asp .NET Core MVC 中的变量?
【发布时间】:2021-06-19 04:32:48
【问题描述】:

我正在从 .Net Framework 迁移到 .Net 5.0,并且我正在尝试在 Razor 视图中使用变量,例如普通的 asp MVC,@page 变量中存在语法错误

错误:“@page”指令必须在所有其他定义的元素之前 在 Razor 文件中。

错误:'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>
       }
  }

【问题讨论】:

    标签: c# asp.net-core .net-core razor .net-5


    【解决方案1】:

    使用简单页面或@(page) 代替@page,错误将得到解决。

    【讨论】:

      【解决方案2】:

      对于剃须刀页面,@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>
             }
        }
      

      【讨论】:

      • 是的,现在可以了,我将@page 替换为@(page) 作为变量。
      猜你喜欢
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多