通过Ext.Net.ComponentLoader调用PartialView

时间:2014-06-02 16:34:01

标签: asp.net-mvc razor

我想将一些部分视图渲染到主视图中。所以我使用了Ext.Net.ComponentLoader,如下所示:

@(
        Html.X().Window()
            .Title("Items")
            .Width(400)
            .Height(300)
            .Closable(false)
            .Resizable(false)
            .Layout(LayoutType.Border)
            .Items(i=>{
                i.Add(new Panel{
                    ID = "West1",
                    Title = "West",
                    Width=200,           
                    Layout = "Accordion",         
                    Region = Region.West,                    
                    Loader = Html.X().ComponentLoader()                        
                        .Url(Url.Action("WestItems"))                        
                        .Mode(LoadMode.Script)
                        .Params(new { containerId = "West1" })
                });

                i.Add(new Panel{
                    ID = "Center1",
                    Region = Region.Center,
                    BodyPadding = 10,
                    Header = false
                });
            })
     )

这里的主视图是使用动作控制器"WestItems"调用部分视图,这在我的情况下并不好。我想直接调用部分View而不使用动作控制器,例如使用Html.Partial("_PartialView", Model)我也希望将模型作为参数发送到局部视图。有没有办法直接通过ComponentLoader调用Partial View?如何将模型作为参数发送到部分视图?

1 个答案:

答案 0 :(得分:2)

我们应该总是调用控制器动作,它们将呈现部分视图。 部分视图称为:

public PartialViewResult _PartialView(string containerId)
        {
            ...
             return new PartialViewResult
                {
                    RenderMode = RenderMode.AddTo,
                    ContainerId = containerId,
                    Model = yourModel,
                    WrapByScriptTag = false 
                };
            }
        }