我在MVC控制器中声明了一个2D数组,我需要通过Razor访问它,以便可以遍历每个值。
我创建了一个会话并将其设置为数组,但是我不知道如何通过剃须刀访问数组。
控制器:
string[,] Things = new string[,] {
{ "thing1", "pie" },
{ "thing1", "cake" },
{ "thing1", "potato" }
};
public void GetThings()
{
Session["Things"] = Things;
}
public ActionResult Index()
{
GetThings();
return View();
}
剃刀:
@{
for (int i = 0; i < Session["Things"].GetLength(0); i++)
{
@i
}
}
我收到错误消息“'object'不包含Getlength
的定义,建议的唯一操作是.Equals
,.GetHashCode
,.GetType
和{{1 }}。
如果我在剃须刀中声明了数组,则用剃须刀中的上述c#起作用,用数组变量名替换“ Session ...”。
我无法从数组会话中读取任何值以显示在HTML前端上,因此在浏览器中显示.ToString
会显示@Session["Things"]
(但这与我尝试调用剃刀中声明的数组),System.String[,]
给出浏览器错误
不能将[]的索引应用于类型为'object'的表达式
答案 0 :(得分:1)
投射到数组:
((string[,])Session["Things"]).GetLength(0)