Вы должны создать объект значения для хранения ваших данных, которые будут возвращены. У меня есть коллега-программист, который говорит, что «наши параметры для соседей и студентов». Не в обиду студентам колледжа и девчонкам, но я склонен согласиться с мнением ... Я не использую параметры НИКОГДА.
Самый простой способ решить вашу проблему - это:
public class FooData
{
public List<string> Strings { get; set; }
public int MyInt { get; set; }
}
public FooData GetFooData(int id)
{
var fooStrings = _stringRepository.GetFooStrings(id);
//or wherever you're getting your data from
return new FooData
{
Strings = fooStrings,
MyInt = id, //or whatever the int prop is supposed to be
};
}
Отличное эмпирическое правило, которое я узнал из книги Боба Мартина «Чистый код», заключается в следующем: если есть данные, которые необходимо вернуть, верните их. Если вам нужно вернуть более одного типа даты, загрузите их в класс-оболочку. Это облегчит вашу жизнь, и следующий парень, который должен смотреть на ваш код, будет тратить меньше времени на расчесывание головы.
РЕДАКТИРОВАТЬ:
В случае, если вы новичок в C #, я подумал, что добавлю немного объяснений. Ваш метод начинается с void
. Это значит, что ничего не возвращается. Да, параметры есть, но вы, вероятно, уже удалили их. :) Вместо void
ваш метод должен возвращать тип. Если бы у вас был только один тип данных для возврата, например List<string>
, вы могли бы сказать List<string> GetFooData(int id)
и т. Д. В моем примере выше я добавил новый класс / тип с именем FooData
в метод, чтобы он возвращал FooData
. Надеюсь это поможет. Если вы уже все это знали, извините за изложение «очевидного». (избавьтесь от своих параметров!)
ДРУГОЕ РЕДАКТИРОВАНИЕ:
Если вы пытаетесь заставить это работать с ASP.NET MVC, как предлагают другие комментаторы, вы должны сделать это "MVC". Если у вас есть представление, для которого нужны данные, предоставьте ему модель представления, подобную этой:
public ViewResult SomeViewWithFooData(int id)
{
var fooStrings = _stringRepository.GetFooStrings(id);
//or wherever you're getting your data from
var fooData = new FooData
{
Strings = fooStrings,
MyInt = id, //or whatever the int prop is supposed to be
};
return new View(fooData);
}
Тогда вы можете иметь представление с именем SomeViewWithFooData
, которое наследуется от System.Web.Mvc.ViewPage<FooData>
. Внутри вы видите, просто позвоните Model
, чтобы получить ваши данные. В этот момент Model
имеет тип FooData.
<%=Model.MyInt %>
- это ваш int, переданный в представление из действия контроллера.
<%=Model.Strings %>
- ваш список строк.