0

我有以下代码,当我看到项目中的剃刀语法被丢在我的腿上时,我担心这是一场噩梦。它不明白什么是代码,什么是 HTML。

@for (int i = 0; i < Model.Instructor.Classes.Count;i++ )
        {
            var c = Model.Instructor.Classes[i];
            var mod = (i%2);
            if (mod==1)
            {
                <tr>
                   }

                    <td>
                        @c.Subject @c.CatalogNumber -  @c.Section
                    </td>
                    if (mod==0)
                    {
                </tr>
            }


        }

我只是想做一个简单的多列表,因为页面上的项目列表太长。它打印出我的 if 逻辑,就好像它是文本一样。如果我在它前面放一个@,它会给我一个语法错误。似乎应该有一个控件,但我看到的所有控件都担心 alt 样式,而不是放置数据的列数。

4

1 回答 1

4

对于初学者,删除分号。Razor 语法不使用它们。更重要的是,你不应该在你的观点中写东西var c = Model.Instructor.Classes[i];。视图应该只绑定到应该从控制器构建/返回的视图模型。

您可以在控制器中设置ViewBag映射到您想要的这些值的属性。像这样的实际逻辑不应该出现在视图中。

最后,如果 Razor 在解析需要解析的哪些术语时遇到问题(正如您在问题开头提到的那样,这是一个潜在的陷阱),您可以使用标签<text>明确概述哪些部分应该是文本。

于 2012-05-10T21:54:26.117 回答