【问题标题】:What place for server controls in ASP.Net MVC?ASP.Net MVC 中服务器控件的位置在哪里?
【发布时间】:2010-10-16 14:54:09
【问题描述】:

在 ASP.Net MVC 的光明新世界中,推荐的 ASP.Net 服务器控件替换是什么?

在我看来,ASP.Net 的最佳特性之一是编写服务器控件的能力(尽管不可否认,事件模型处理起来很可怕)。如果这些控件是自填充的,那么它们可以在不同的项目之间共享,而无需大惊小怪——您只需引用服务器控件所在的程序集,然后将其放到 aspx 上。控制完成其余的工作。这非常适合小部件世界并提供有效的代码重用。如何在 MVC 中实现相同的目标?

我对不回发的自填充控件最​​感兴趣,因为我明白回发模型绝对不适合 MVC。它们是否仍然可以封装在一个可以在多个不同 MVC Web 项目之间共享的类中?或者这是否需要一种完全不同的思维方式,其中控件不应该自行填充,并且应该使用局部视图?有没有办法在项目之间共享部分视图?

最后,我可以在 MVC 项目中使用我的旧(非回发)服务器控件吗?

【问题讨论】:

    标签: asp.net-mvc partial-views custom-server-controls code-reuse


    【解决方案1】:

    与服务器控件最接近的 Asp.Net MVC 是部分请求。在部分请求中,调用 MVC 操作方法,并将其输出附加到当前视图。不幸的是,目前对此 (Html.RenderAction) 的官方支持正在期货程序集中。

    如果您无法使用 futures 程序集,一位名叫 Steve Sanderson 的博主写了一篇关于实现类似功能的文章:
    http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

    【讨论】:

      【解决方案2】:

      您可以使用 Html 辅助扩展方法来模仿非回发控件的行为。就像 Html.TextBox() 等一样,你可以自己编写,如果你愿意,可以将它们封装在自己的项目中。

      如果您编写了只输出 HTML 的控件,那么将它们转换为 Html 助手应该不难。

      【讨论】:

        猜你喜欢
        • 2021-12-28
        • 1970-01-01
        • 2017-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-13
        • 2021-01-07
        相关资源
        最近更新 更多