3

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

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

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

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

4

2 回答 2

3

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

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

于 2009-03-31T14:37:26.267 回答
1

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

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

于 2009-03-31T17:01:29.167 回答