我有一个有多个视图的控制器。每个视图都返回一个名为actionType的参数,其中每个视图都返回不同的枚举类型(例如,ElectricEnum,PaperlessEnum,DigitalEnum)。在我的控制器操作中,我将其设置为接收名为actionType的类型Enum。默认设置为null。但是,我无法让param填充数据,无论如何都会返回null。
以下是视图中的代码示例和方法标题...
查看:
@using (Html.BeginForm("DownloadCSVReport", "Public", FormMethod.Post, new { target = "_blank" }))
{
@Html.Hidden("fromDate", Model.StatsByDate.Parameters.FromDate)
@Html.Hidden("toDate", Model.StatsByDate.Parameters.ToDate)
@Html.Hidden("serviceType", ServiceTypeEnum.Paperless)
@Html.Hidden("actionType", Model.StatsByDate.Parameters.ActionType)
<input type="submit" class="btn btn-primary" name="download" value="Download" formmethod="post" />
}
控制器:
public ActionResult DownloadCSVReport(DateTime fromDate, DateTime toDate, ServiceTypeEnum serviceType, Enum actionType = null)
{
string returnValue = _dashboardClient.Call(svc => svc.GetCommaSeparatedList(fromDate, toDate, serviceType, actionType));
Response.ContentType = "application/ms-excel";
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.csv", "ReportDownload"));
Response.AppendCookie(new HttpCookie("DownloadToken", System.DateTime.Now.ToShortTimeString())); // For loader icon
return Content(returnValue, "application/vnd.ms-excel");
}
在此视图中,ActionType的值为ElectronicEnum,但在调用此DownloadCSVReport操作的其他视图中,它们是另一种枚举...
是否有可能以这种方式解决这个问题,我可以将不同类型的枚举传递到一个目的地并利用其价值吗?
答案 0 :(得分:0)
模型绑定只查找模型属性。那么你的模型中没有哪一部分将会丢失。将ActionType
添加到模型中,您将在控制器中将其作为模型的属性。