2016-07-26 80 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