C# 是否将Html.Action(“MyView”,Model.SomeData)作为null传入?

C# 是否将Html.Action(“MyView”,Model.SomeData)作为null传入?,c#,asp.net-mvc,C#,Asp.net Mvc,下面是我的代码的简短版本,非常基本。在我的页面模型中,我有一个可枚举字段,我将它传递到Action()方法中。问题是,在视图中调用Html.Action()之前,它不是null。然而,一旦它进入子操作,它就会突然为空——好像它没有被传入 在一次类似的尝试中,我尝试了Html.Partial(“overlayelerts”,Model.Alerts),但它仍然以null的形式传递数据。我不知道这是为什么。调试时,将在调用Action()或Partial()方法之前填充Alerts属性。有什么想法吗

下面是我的代码的简短版本,非常基本。在我的页面模型中,我有一个可枚举字段,我将它传递到Action()方法中。问题是,在视图中调用Html.Action()之前,它不是null。然而,一旦它进入子操作,它就会突然为空——好像它没有被传入

在一次类似的尝试中,我尝试了Html.Partial(“overlayelerts”,Model.Alerts),但它仍然以null的形式传递数据。我不知道这是为什么。调试时,将在调用Action()或Partial()方法之前填充Alerts属性。有什么想法吗?谢谢

页面控制器操作

public ActionResult Index() 
{
    var model = new DashboardModel()
    {
        ...
        Alerts = GadgetService.GetAlerts()
        ...
    };

    return View(model); 
}
型号:

public class DashboardModel
{
    ...
    public IEnumerable<AlertMessage> Alerts { get; set; }
    ...
}
公共类仪表板模型
{
...
公共IEnumerable警报{get;set;}
...
}
查看

<%: Html.Action("GetOverlayAlerts", Model.Alerts)%>

子操作(同一控制器)

[ChildActionOnly]
公共操作结果GetOverlayAlerts(IEnumerable警报)
{
alerts.Any();//尝试以下操作:

<%: Html.Action("GetOverlayAlerts", new {alerts = Model.Alerts})%>


成功了!现在,我该怎么做才能使用Html.Partial()直接传递到视图中?@Ryan:如果你愿意,你可以把它作为一个新问题发布。
<%: Html.Action("GetOverlayAlerts", new {alerts = Model.Alerts})%>