如何将C# Razor分页for循环正确转换为VB.NET Razor语法
C# Razor 转 VB.NET Razor 分页代码正确写法
正确转换后的代码
你提供的C# Razor分页代码,对应可直接运行的VB.NET Razor写法如下:
<div> <ul class="pagination"> @For i = 1 To Model.TotalPages @<li class="page-item @(If(i = Model.CurrentPage, "active", ""))"> <a asp-page="/Index" asp-route-currentpage="@i" class="page-link">@i</a> </li> Next </ul> </div>
你原有转换代码的错误点
你自行编写的代码无法运行,是因为存在以下几处语法和逻辑问题:
- 多余外层循环:原始C#代码直接访问当前分页模型的
TotalPages属性,不需要额外加For Each item In Model遍历Model - 条件判断语法错误:VB.NET不支持C#的
? :三元运算符,要使用If(判断条件, 真值返回结果, 假值返回结果)的内置写法;同时VB.NET的相等比较运算符是=,不是C#的== - 冗余计数逻辑:VB.NET的
For...To循环会自动完成循环变量的递增,不需要手动写i += 1,手动累加反而会导致页码跳页、少渲染分页项 - HTML标签语法错误:你代码里的
</li>闭合标签漏写了开头的<,同时缺失了最外层的<div>和</ul>闭合标签 - Razor语法规则不匹配:VB.NET Razor的
For循环块内,HTML标签前加@标识内容输出即可,不需要重复给循环本身加多余的@前缀
内容的提问来源于stack exchange,提问作者Jazz_Coder
相关产品推荐
相关产品推荐

