syntax - MVC3 Razor 语法问题

标签 syntax asp.net-mvc-3 razor

我试图在 MVC3 中使用 Razor 语法制作一个非常简单的 View ,但似乎我无法正确使用语法。

我有一个像这样的简单表

<table>
                <tr>
                    @{
                        var counter = 0;
                    }

                    @foreach (var category in ViewBag.Categories)
                    {
                        counter++;
                        <td>
                            <input type="checkbox" checked="checked" name="@("category" + category.Code)" />
                            @category.Description
                        </td>

                        if (counter % 2 == 0)
                        {
                            </tr>
                            <tr>
                        }
                    }
                </tr>
            </table>

当我在 if 语句中插入 and 时,收到此错误

The using block is missing a closing "}" character.



如果我尝试将这两个标签包裹在 and 中,则会出现此错误:

The "tr" element was not closed.

最佳答案

您的 </tr><tr>弄乱了 html/代码组合的“流程”。

您正在不同级别关闭 tr-tag,不是 html 中的不同级别,而是代码内部。您应该欺骗 razor 输出 html,它不会自行解析。

你可以像这样包含它们:

@:</tr><tr>

或者
@Html.Raw("</tr><tr>")

结果:
                        if (counter % 2 == 0)
                        {
                            @:</tr><tr>
                        }

点击获取 Haack 的 quick reference of Razor syntax

关于syntax - MVC3 Razor 语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4827354/

相关文章:

javascript - 点和方括号表示法

asp.net - 添加 mvc3 不引人注目的验证最小/最大验证器

asp.net-mvc-3 - MVC。 HttpPostedFileBase始终为null

asp.net - 使用 MySql 和 MVC 3 上的成员(member)资格向注册表单添加更多字段

razor - 模式在 Blazor 服务器端应用程序中不起作用

java - 字 rune 字中转义数字的 Java 语义是什么,例如 '\15' ?

Haskell 进口申报

c - 使用 : operator in C

jquery - 如何将 ViewBag 值传递给 razor 中的 JavaScript 函数?

c# - 将文件夹中包含的所有图像上传到数据库 ASP MVC 4 Razor