У меня есть представление, что я передаю объект viewmodel, который содержит объект IQueryable <>.
Этот объект используется для заполнения сетки mvccontrib. Представление также содержит другие частичные представления, которые позволяют пользователю фильтровать данные в сетке.
После того как сетка отфильтрована, я бы хотел, чтобы пользователь мог экспортировать объект Iqueryable в другой метод actionresult контроллера, который затем вызывает другую модель представления, которая экспортирует данные в Excel.
Вот фрагмент представления, вызывающего метод Export actionresult ():
@using (Html.BeginForm("Export", "Home", FormMethod.Post, new { Model }))
{
<p>
<input class="button" value="Export to Excel" type="submit" />
</p>
}
Модель содержит объект IQueryable.
Когда я отлаживаю код, я могу просмотреть объект viewmodel и, конечно, чтобы заполнить IQueryable, я должен перечислить объект.
Я также создал другой объект viewmodel, который, как только объект Model передается обратно в метод actionresult, пытается перечислить объект IQueryable, используя метод .ToList () или метод AsEnumerable ().
Но во всех случаях объект IQueryable передается контроллеру как нулевой объект.
Вот метод результата действия, который вызывается из представления:
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Export(PagedViewModel<NPSProcessed> NPSData)
{
string message = "";
NPSData Query = new Models.NPSData(NPSData);
Query.IData = NPSData.Query.ToList();
// Opening the Excel template...
FileStream fs =
new FileStream(Server.MapPath(@"\Content\NPSProcessedTemplate.xls"), FileMode.Open, FileAccess.Read);
MemoryStream ms = new MemoryStream();
ee.ExportData(fs, ms, Query.IData, message);
// Sending the server processed data back to the user computer...
return File(ms.ToArray(), "application/vnd.ms-excel", "NPSProcessedNewFile.xls");
}
Любая помощь будет принята с благодарностью.
Спасибо
Джо