我有一个具有值数组的TempData变量。如何访问该值或将TempData数组转换为数组int。
我试过下面的代码。但它不起作用。
string[] allowRenew = (string[])TempData["ServiceID"];
foreach (var data in TempData["ServiceID"] as List<int>)
{
serviceIDList.Add(data.ToString());
}
for (int i = 0; (object[])TempData["ServiceID"].Count; i++)
请帮帮我。如何使用for或foreach循环获取值。
答案 0 :(得分:0)
您可以将字符串数组转换为整数数组:
int[] intArray = Array.ConvertAll(allowRenew , int.Parse);
然后你可以循环整数数组。
for(int i=0;i<intArray.Length-1;i++)
{
}
答案 1 :(得分:0)
如果您确定您的tempdata仅包含整数,请使用
int[] temp = (int[])TempData["ServiceID"];
如果数组中的值为空值
int?[] temp = Array.ConvertAll(TempData["ServiceID"], TryParseInt32);
答案 2 :(得分:0)
我认为这是您正在寻找的解决方案:
int[] temp = (int[])TempData["ServiceID"];
注意强>:
TempData
,其基础类型(TempDataDictionary
)实现IDictionary<string, object>
:
public class TempDataDictionary : IDictionary<string, object>
按键访问字典会返回对象 - 因此,您可以转换为所需的类型。
答案 3 :(得分:-1)
1)使用数据创建数组或集合,并将其分配给Controller的Action Method中的TempData [&#34; ServiceID&#34;]。 2)在视图中使你的foreach迭代
foreach (var data in TempData["ServiceID"] as type of array/collectin assigned in the controler)
{
//do want you want with the data
}