为什么HtmlHelper在没有给出“@”符号时不起作用?

时间:2014-09-01 04:21:46

标签: asp.net-mvc razor

在视图文件中我添加了以下代码块。 (为了使其干净,我省略了不必要的代码块。)

         <div>

            @for (int i = 0; i < Model.Step1.Locations.Count; i++)
            {

                Html.TextBoxFor(modelItem => Model.Step1.Locations[i].City);
                Html.TextBoxFor(m => Model.Step1.Locations[i].Country);
                <br/>

            }
        </div>

这不会显示上面代码块的文本框,但是当我进行调试时,迭代正常工作。

然后我改变了上面的代码块,如下所示,

            <div>
            <table>
                @for (int i = 0; i < Model.Step1.Locations.Count; i++)
                {
                    <tr>
                        <td>
                            @Html.TextBoxFor(modelItem => Model.Step1.Locations[i].City)
                        </td>
                        <td>
                            @Html.TextBoxFor(m => Model.Step1.Locations[i].Country)
                        </td>
                    </tr>
                }
            </table>
        </div> 

这是正常的。 我们是否必须添加&#39; @&#39;明确签字? 因为在第一个代码块中,这些HtmlHelper在&#39;的大括号内使用。循环,所以我想&#39; @&#39;不需要签名。

你能解释一下背后的事实吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

通过使用@符号,您说“如果此代码的结果返回某些内容,请将其输出。”

如果您没有将@放在前面,代码将会执行,但不会呈现任何内容。