2014-09-01 89 views
0

在视图文件中我添加了以下代码块。 (为了使这个干净,我省略了的代码块是没有必要的。)为什么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

您应该先阅读剃刀是如何工作的,以及它如何解释HTML代码的位置以及C#代码为 – dotnetom 2014-09-01 04:39:55

+0

的位置。http://www.c-sharpcorner.com/UploadFile/3d39b4/getting-started-with- razor-view-engine-in-mvc-3/ – 2014-09-01 04:59:10

+0

谢谢你们。 – SamD 2014-09-01 07:53:14

回答

2

通过使用@符号,您在说“如果此代码的结果返回某个内容,则输出它。”

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

+0

谢谢@RowanFreeman。 – SamD 2014-09-01 07:52:40

相关问题