服务器控件在 ASP.Net MVC 中的什么位置?

发布于 2024-07-15 12:22:46 字数 454 浏览 10 评论 0原文

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

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

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

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

What is the recommended replacement of ASP.Net server controls in the bright new world of ASP.Net MVC?

In my opinion, one of the best features of ASP.Net is the ability to write server controls (although, admittedly, the event model is horrendous to deal with). If these controls are self-populating, then they can be shared between different projects with the minimum of fuss - you simply reference the assembly where the server control lives, and drop it on to the aspx. The control does the rest. This fits very nicely in the World of Widgets and provides efficient code reuse. How is one meant to achieve the same thing in MVC?

I am most interested in self-populating controls that do not post back, as I appreciate that the postback model definitely does not fit with MVC. Can they still be encapsulated in a class that can be shared between a number of different MVC web projects? Or does this require a whole different mindset where controls shouldn't populate themselves, and one should use partial views? Is there a way of sharing partial views between projects?

Finally, can I use my old (non-postback) server controls, in an MVC projects?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

妞丶爷亲个 2024-07-22 12:22:46

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

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

You can mimic the behavior of non-post back controls with Html helper extension methods. Just like Html.TextBox(), etc, you can write your own and encapsulate them in their own project if you like.

If you've written controls that just output HTML, it shouldn't be that hard to convert them to Html helpers.

凶凌 2024-07-22 12:22:46

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

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

The closest Asp.Net MVC comes to server controls is partial requests. In a partial request an MVC action method is called, and its output is appended to the current view. Unfortunately, the official support for this (Html.RenderAction) is in the futures assembly at the moment.

If using the futures assembly is not possible for you, a blogger named Steve Sanderson has written an article on implementing similar functionality:
http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文