Я передаю кортеж на мой частичный вид из моего actionresult. Мне не нужно создавать класс, потому что он будет содержать менее половины десятка элементов и будет использоваться только один раз в приложении. Раньше я никогда не слышал о Tuple, и мне казалось, что это лучший способ. Проблема в том, как получить результаты, когда я не знаю, насколько большой будет Tuple?
Мой код возвращает ошибку: "оператор foreach не может работать с переменными типа" объект ", потому что" объект "не содержит общедоступного определения для" GetEnumerator ""
Многие сайты объясняют эту ошибку "если вы хотите использовать foreach в Tuple, тогда вы можете наследовать класс Tuple и реализовать дочерний класс с интерфейсом IEnumerable и предоставить определение для метода GetEnumerator". к которому я сижу и царапаю голову, как будто я читаю Урду.
Каким будет лучший способ реорганизовать это, чтобы передать список списков? Thanx заранее для ваших предложений.
Мой Actionresult:
List<Tuple<string, string>> mylist = new List<Tuple<string, string>>();
string[] bits = stringvar.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string bit in bits)
{
... //some string manipulation here
mylist.Add(new Tuple<string, string>(string1, string2 ));
}
ViewData["FolderPath"] = mylist;
return PartialView("MyPartialView");
и мой Partialview:
<% if (ViewData["FolderPath"] != null) {
var mystuff = ViewData["FolderPath"];
foreach (Tuple<string, string> item in mystuff)
{
string one = item.Item1;
string two = item.Item2;
... // do something with my strings
}
}
%>
Где вы пишете:
var mystuff = ViewData["FolderPath"];
Ты должен попытаться:
var mystuff = (List<Tuple<string, string>>)ViewData["FolderPath"];