2011-07-04 44 views
1

我使用asp.net mvc 2.0并尝试创建可重用的网站部件,可以在任何页面上动态添加。
我遇到的问题是如何加载与所有相关的js和数据的部分视图?香港专业教育学院尝试下面的方法来做到这一点:
创建可重用的小部件

  1. 使用局部视图,并把所有的JS进去。在主视图中使用渲染部分。但要初始化部分视图,我需要将模型添加到当前操作方法模型,以便能够制作RenderPartial("MyPartialView", Model.PartialViewModel)
    此外,我没有地方可以放置额外的数据,我需要填写表单(例如下拉列表值,某些预定义值等)。

  2. 使用RenderAction,但它似乎与RenderPartial有相同的问题,除了我不需要添加任何其他模型。

任何其他oprions非常感谢。

回答

1

据我所知,RenderAction在动作上执行完整的管道,然后呈现结果 - 所呈现的内容与您在浏览该动作时看到的内容相同。我已经使用RenderAction在整个站点渲染'小部件',但在我看来,它们应该独立于渲染它们的页面,否则它们不是真正的小部件,应该是渲染页面代码的一部分。例如,如果有登录表单,则无论用户当前处于什么页面,您都会将用户带到一个可处理信息的页面,因此这是一个好的窗口小部件。我用过的其他方法是展示购物篮或广告。这两者都不依赖于显示的页面。

希望这会有所帮助!

+0

卡尔,我该走哪条路?我如何填充所需的数据下拉列表?所有markup + js应该去哪里? –

+0

在控件中为小部件的动作填充它。标记在局部视图中,JS在主页面中(除非您使用剃须刀,然后将其放入局部视图中)。 - 要清楚,你需要一个动作和一个视图,并且你使用RenderAction来调用动作。 – Carl

相关问题