2016-07-26 37 views
-7

我有一個循環,並在html actionlink中的循環外賦值。但每當我提交鏈接時,只會將最後一個值放入actionlink。有人可以幫助我如何獲得循環中的所有值。我的預期結果是條件滿足時,它將分配actionlinks類名稱 - 訪問,如果不是 - NotVisited。我在查看頁面中有很多動作鏈接。在循環外獲取循環值MVC C#

我的代碼 -

string[] class_name = null; 

    @foreach (string items in str_array) 
          // str_array I am getting like [0] = 1 
          //        [1] = 2 
     { 
      if (items.ToString() == class_id.ToString()) 
      // class id is integer value eg. 1 and getting from db 
      { 
       class_name = new string[] { "visited" }; 
      } 
      else 
      { 
       class_name = new string[] { "NotVisited" }; 
      } 
     } 

    @Html.ActionLink("test", "R_Class", "R_Class", null, new { @class = string.Format("{0}", class_name), onclick = "return false;" }) 
+3

你想要什麼? – Imad

+0

當你出來循環時,最後生成的字符串數組對象被引用變量class_name所緩存。 –

+0

@Imad,我想當條件滿足時,它會將值分配給動作鏈接 –

回答

1

你的問題有點含糊,但我假設你要分配找到的第一個訪問類(如果有的話)

var class_name = new string[] {}; // I changed this line just to comply with coding best practices 

    @foreach (string items in str_array) 
          // str_array I am getting like [0] = 1 
          //        [1] = 2 
     { 
      if (items.ToString() == class_id.ToString()) 
      { 
       class_name = new string[] { "visited" }; 
       break; 
      } 
      else 
      { 
       class_name = new string[] { "NotVisited" }; 
      } 
     } 

    @Html.ActionLink("test", "R_Class", "R_Class", null, new { @class = string.Format("{0}", class_name), onclick = "return false;" }) 

如果我的假設是真的,如果上課的時候不'visited'它應該是'NotVisited',那麼你可以有這樣一個不那麼冗長的代碼:

var class_name = new string[] { "NotVisited" }; 
    @foreach (string items in str_array) 
     { 
      if (items.ToString() == class_id.ToString()) 
      { 
       class_name = new string[] { "visited" }; 
       break; 
      } 
     } 

    @Html.ActionLink("test", "R_Class", "R_Class", null, new { @class = string.Format("{0}", class_name), onclick = "return false;" }) 
+0

非常感謝,這正是我一直在尋找,感謝您的幫助 –

+0

不客氣的隊友:) – akazemis

0

我不知道爲什麼你想這樣做,但看起來要多次應用類。

string[] class_name = null; 
@foreach (string items in str_array) 
{ 
    if (items.ToString() == class_id.ToString()) 
    { 
     class_name += " visited"; 
    } 
    else 
    { 
     class_name += " NotVisited" 
    } 
} 

@Html.ActionLink("test", "R_Class", "R_Class", null, new { @class = string.Format("{0}", class_name), onclick = "return false;" }) 
+0

對不起,我得到轉換錯誤 –

+0

仍然我得到相同的轉換錯誤 –

+0

現在嘗試......... – Imad