2016-11-24 67 views
0

我有一個強類型的視圖,當我試圖顯示一個模型時,將id傳遞給我的控制器操作方法。找不到我的強類型視圖的剃刀語法

我想構建一個鏈接到每個這些模型以及。

對於我的foreach開始之前,我有一個i=0,然後我試圖增加1使用i++。問題是,i++部分不起作用 - 我的鏈接始終爲零作爲id。爲什麼?

有人可以幫忙嗎?

@{ 
    var i = 0; 
    foreach (var item in Model) 
    { 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.Title) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Content) 
     </td> 
     <td> 

      @Html.ActionLink("Details", "Details", new { id = i }) 
      i++; 
     </td> 
    </tr> 
     } 
    } 
+0

移動'我++;'到收盤'' –

+0

是您的'我++'肯定正在考慮代碼,而不是標記後??嘗試將其封裝在'@()'中,例如'@(i ++)' – Charleh

+0

對不起,我的意思是'@ {}' - @()'我相信你可能不想要的HTML輸出 – Charleh

回答

2

Razor盡最大努力將代碼與標記/ html/text區分開來,這在一般情況下並不容易。在這種情況下,i++被視爲文本。

原因是在foreach {部件後面有標籤,導致閱讀模式切換到標記/ html /文本。在該模式下,只有@...,@{...}被識別爲代碼,其他所有內容都被視爲標記/ html /文本。

如果發生這種情況,只是把@{ ... }在你的語句,像這樣:

<td> 
    @Html.ActionLink("Details", "Details", new { id = i }) 
    @{ 
     i++; 
    } 
</td>