设计:产品Treeview在多个控制器之间共享

时间:2011-02-09 15:28:15

标签: asp.net-mvc

我有一个在多个视图和控制器中引用的产品树视图。使用AJAX和公共Action方法动态加载产品树视图的树视图项。

我应该将产品树视图的逻辑和公共操作方法移动到共享控制器(如SharedController)吗?你推荐什么?

2 个答案:

答案 0 :(得分:1)

burnt1ce,

一如既往,它取决于...如果你总是通过ajax使用它(jquery或msajax ?? [不重要,但允许你在问题中添加适当的标签]),那么我会试图将它重构为带有一些重载的html.helper,以允许加载不同的产品模型。 (我建议使用产品接口,而不是具体的类,以便在需要时允许各种产品子类)...

如果您需要在视图的上下文中加载它,那么您可以将其保留在原来的位置并通过html.RenderAction()方法加载它。

这肯定是我最初的想法。

答案 1 :(得分:0)

ProductController,其中包含检索产品数据的操作(返回JSON?)

使用部分视图拼出Telerik View。我假设从那个视图你将进行ajax调用以获取产品然后更新具有该数据的treeview?

<%= Html.Telerik().TreeView()
            .Name("TreeView")
            .Items(item =>
            {
                item.Add()
                    .Text("Mail")
                    .ImageUrl("~/Content/PanelBar/FirstLook/mail.gif")
                    .ImageHtmlAttributes(new { alt = "Mail Icon" })
                    .Items(subItem =>
                    {
...