У меня есть двумерный массив, объявленный в контроллере MVC, и мне нужно получить к нему доступ через Razor, чтобы я мог просмотреть каждое значение.
Я создаю сеанс и устанавливаю его как массив, но я не могу понять, как получить доступ к массиву через бритву.
Контроллер:
string[,] Things = new string[,] {
{ "thing1", "pie" },
{ "thing1", "cake" },
{ "thing1", "potato" }
};
public void GetThings()
{
Session["Things"] = Things;
}
public ActionResult Index()
{
GetThings();
return View();
}
Razor:
@{
for (int i = 0; i < Session["Things"].GetLength(0); i++)
{
@i
}
}
Я получаю сообщение об ошибке «объект» не содержит определения для Getlength
, единственные предлагаемые действия: .Equals
, .GetHashCode
, .GetType
и .ToString
.
Вышеупомянутый c # в бритве работает, если я объявляю массив в бритве, заменяя «Session ...» именем переменной массива.
Я не могу прочитать какие-либо значения из сеанса массива для отображения на внешней стороне HTML, при этом @Session["Things"]
отображает System.String[,]
в браузере (но тогда это то же самое, как если бы я пытался вызвать массив, объявленный в razor ), @Session["Things"][1,1]
выдает ошибку браузера
Невозможно применить индексирование с помощью [] к выражению типа 'object'