为什么HtmlHlper在没有给出'@'符号时不起作用?
问题描述:
在视图文件中我添加了以下代码块。 (为了使这个干净,我省略了的代码块是没有必要的。)为什么HtmlHlper在没有给出'@'符号时不起作用?
<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>
而且可以正常工作。 我们是否必须明确添加'@'符号? 因为在第一个代码块中,这些HtmlHelpers用在'for'循环的大括号内,所以我认为不需要'@'符号。
你能解释一下背后的事实吗?
谢谢。
答
通过使用@
符号,您在说“如果此代码的结果返回某个内容,则输出它。”
如果您没有将@
置于前面,代码将会执行但不会呈现任何内容。
+0
谢谢@RowanFreeman。 – SamD 2014-09-01 07:52:40
您应该先阅读剃刀是如何工作的,以及它如何解释HTML代码的位置以及C#代码为 – dotnetom 2014-09-01 04:39:55
的位置。http://www.c-sharpcorner.com/UploadFile/3d39b4/getting-started-with- razor-view-engine-in-mvc-3/ – 2014-09-01 04:59:10
谢谢你们。 – SamD 2014-09-01 07:53:14