2014-09-01 88 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

相關問題