【发布时间】:2011-11-22 04:10:58
【问题描述】:
我有一个视图,我将一个 viewmodel 对象传递给它,其中包含一个 IQueryable 对象。
此对象用于填充 mvccontrib 网格。该视图还包含其他部分视图,允许用户过滤网格中的数据。
一旦网格被过滤,我希望用户能够将 Iqueryable 对象导出到另一个控制器 actionresult 方法,然后调用另一个视图模型将数据导出到 Excel。
这里是调用Export actionresult()方法的视图的sn-p:
@using (Html.BeginForm("Export", "Home", FormMethod.Post, new { Model }))
{
<p>
<input class="button" value="Export to Excel" type="submit" />
</p>
}
模型确实包含 IQueryable 对象。
当我调试代码时,我可以查看视图模型对象,当然,为了填充 IQueryable,我必须枚举该对象。
我还创建了另一个 viewmodel 对象,一旦将 Model 对象传递回 actionresult 方法,它就会尝试使用 .ToList() 方法或 AsEnumerable() 方法枚举 IQueryable 对象。
但在所有情况下,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");
}
任何帮助将不胜感激。
谢谢
乔
【问题讨论】:
标签: c# asp.net-mvc-3 viewmodel