以下是我的代码的简短版本,它非常基本。在我的页面模型中,我有一个可枚举的字段,我将其传递给Action()方法。问题是,在视图中调用Html.Action()之前,它不是null。但是,一旦它进入子动作,它就会突然变为空 - 就像它没有被传入一样。
在类似的尝试中,我尝试了Html.Partial(“OverlayAlerts”,Model.Alerts),它仍然将数据传递为null。我不确定为什么会这样。在调试时,会在调用Action()(或Partial())方法之前填充Alerts属性。有任何想法吗?感谢。
PAGE CONTROLLER ACTION
public ActionResult Index()
{
var model = new DashboardModel()
{
...
Alerts = GadgetService.GetAlerts()
...
};
return View(model);
}
MODEL:
public class DashboardModel
{
...
public IEnumerable<AlertMessage> Alerts { get; set; }
...
}
查看
<%: Html.Action("GetOverlayAlerts", Model.Alerts)%>
儿童行动(同一控制人员)
[ChildActionOnly]
public ActionResult GetOverlayAlerts(IEnumerable<AlertMessage> alerts)
{
alerts.Any(); // <--- FAILS: alerts is passed through as null?
}
答案 0 :(得分:7)
试试这个:
<%: Html.Action("GetOverlayAlerts", new {alerts = Model.Alerts})%>