将两个return语句合并为一个

时间:2014-03-03 14:05:55

标签: c# asp.net-mvc

所以我有两个return语句,我想将它们组合成一个Get方法。我怎样才能正确地做到这一点:

在我的api控制器中,我有:

public IEnumerable<GroupUsers> Get(int id)
        {
            return new UserApi().GetUsers(id);
        }

这是我的第二个

public int Get()
        {
            var _brand = TenantManager.GetType(Request.RequestUri);
            var _settings = new SettingsService(_brand);
            return _settings.GetValueAsInt(UserSettings, 13);
        }

如何组合它们以在一种方法中返回两者。另外,如果我想创建一个带有返回结果的viewModel,然后在get方法中返回模型?

2 个答案:

答案 0 :(得分:1)

如果要返回一个项目,该项目将单个对象中的多个内容的信息组合在一起,请为其创建一个类:

class GroupAndId {
    public IEnumerable<GroupUsers> Users { get; set; }
    public int Id  { get; set; }
}

现在您可以在return语句中使用此类:

return new GroupAndId {
    Users = new UserApi().GetUsers(id);
    Id = _settings.GetValueAsInt(UserSettings, 13);
};

答案 1 :(得分:1)

声明您的ViewModel:

public class YourViewModel
{
    public IEnumerable<GroupUsers> GroupUsers { get; set; }
    public int someIntValue { get; set; }
}

现在在您的存储库中声明一个方法来使用它:

public YourViewModel GetMethodName(int id)
{
  var vm = new YourViewModel();

  var _brand = TenantManager.GetType(Request.RequestUri);
  var _settings = new SettingsService(_brand);

  vm.GroupUsers = UserApi().GetUsers(id);
  vm.someIntValue = _settings.GetValueAsInt(UserSettings, 13);

  return vm;
}