Доброго времени суток. Подскажите, пожалуйста, хотя бы примерно что не так

Долго уже борюсь с этим. Вот код модели. И получается у меня есть две кнопки "Сформировать" и "Сохранить". На сформировать получается выполняется GetData1 и GetData2(выполняются хранимые процедуры, которые возвращают результат), а по кнопке сохранить выполняется SaveDefaultTable, но сохраняет все пустое, потому что Data и Data1 чистятся. Не подскажите как считать данные из результата хранимых процедур? Заранее благодарю.
Код:
namespace VMP.Models
{
public class DispWomenViewModel : IViewModel
{
public IList<Disp_Women1_Result> Data { get; set; }
public IList<Disp_Women2_Result> Data1 { get; set; }
public DispWomenViewModel()
{
Data = new List<Disp_Women1_Result>();
Data1 = new List<Disp_Women2_Result>();
}
private UnitOfWork uow = UnitOfWork.getInstance();
public void GetData1(int monthrep, int yearrep)
{
Data = uow.repositoryMEE.GetDispWomen1(monthrep, yearrep);
}
public void GetData2(int monthrep, int yearrep)
{
Data1 = uow.repositoryMEE.GetDispWomen2(monthrep, yearrep);
}
public void SaveDefaultTable(Stream OutputStream, int monthrep, int yearrep)
{
string[] months = { "январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь" };
xlSheet.Cell(7, 2).Value = Data;
for (int i = 0; i < Data.Count; i++)
{
for (int j = 0; j < 10; j++)
{
xlSheet.Cell(7, j + 2).Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
xlSheet.Cell(7, j + 2).Style.Alignment.WrapText = true;
}
}
xlSheet.Cell(8, 2).Value = Data1;
for (int i = 0; i < Data1.Count; i++)
{
for (int j = 0; j < 10; j++)
{
xlSheet.Cell(8, j + 2).Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
xlSheet.Cell(8, j + 2).Style.Alignment.WrapText = true;
}
}
for (int j = 0; j < 11; j++)
{
xlSheet.Cell(6, j + 1).Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
xlSheet.Cell(6, j + 6).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center);
xlSheet.Cell(6, j + 6).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Center);
}
for (int j = 0; j < 6; j++)
{
xlSheet.Cell(7, j + 6).Value = "X";
xlSheet.Cell(7, j + 6).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center);
xlSheet.Cell(7, j + 6).Style.Alignment.SetVertical(XLAlignmentVerticalValues.Center);
}
workbook.SaveAs(OutputStream);
}
//}
}
public System.IO.MemoryStream Get_xlsx_mem(int monthrep, int yearrep)
{
var mem = new System.IO.MemoryStream();
SaveDefaultTable(mem, monthrep, yearrep);
return mem;
}
}
}
Вот код контроллера
Код:
[HttpPost]
[Authorize(Roles = "role2")]
public ActionResult DispWomen(string submitButton, int monthrep, int yearrep, IViewModel model)
{
string[] months = { "январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь" };
string str;
if (monthrep != 1)
{
str = @"Охват женщин и девочек профосмотрами и диспансеризацией, январь - " + months[monthrep - 1] + " " + yearrep + " г";
}
else
{
str = @"Охват женщин и девочек профосмотрами и диспансеризацией, январь " + yearrep + " г";
}
switch (submitButton)
{
case "Сформировать":
model.GetData1(monthrep, yearrep);
model.GetData2(monthrep, yearrep);
return GetFetch();
case "Сохранить":
var mem = model.Get_xlsx_mem(monthrep, yearrep);
mem.Position = 0;
return File(mem, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", str + ".xlsx");
default:
return View();
}
}