gpt4 book ai didi

asp.net - .NET MVC 应用程序中的可重用性单位是什么?

转载 作者:行者123 更新时间:2023-12-03 12:59:30 25 4
gpt4 key购买 nike

在传统的 ASP.NET Web 窗体应用程序中,UserControls 是封装功能以使其可以重用的好方法。但是,UserControl 不太适合 MVC 模型。他们经常大量使用 ViewState,并且模糊了 MVC 提倡的关注点分离。

我的问题是,你如何最好地捆绑一个功能,以便它可以在 MVC 应用程序之间共享?

例如,考虑一个从/到日期选择器 UserControl :

  • 允许用户选择两个日期,或者使用 javascript 覆盖,或者在单独的字段中输入日、月和年
  • 可以配置为默认为今天和明天的日期或开发人员选择的日期
  • 验证用户返回的日期以确保开始日期早于结束日期
  • 公开可以通过代码隐藏
  • 访问的 From 和 To 属性

    我如何最好地在 .NET MVC 中构建这样的东西,以便我可以轻松地重用它?

    请注意,要完全模拟用户控件的功能,MVC 组件必须管理提交的表单数据和验证——而不仅仅是演示。

    最佳答案

    一般来说,我同意用户控件在封装 UI 内容方面很好,但我认为 MVC 并没有真正改变太多。如果我没记错的话,在经典的 Asp.net 项目中重用用户控件是一种痛苦,而且从来都不是真正创建可重用组件的最佳方式。您为经典 ASP.net 购买的大多数 UI 工具包都没有为您提供用户控件,它们基本上为您提供了服务器控件和 javascript 控件。

    在您的示例中,我可能会创建或找到一个 jquery(或您选择的框架)插件,该插件可以在客户端执行您想要的操作。您还可以围绕它构建一个 C# 包装器,类似于 Telerik 对一些 jquery UI 控件所做的。我确实认为 这个词代码隐藏 甚至 View 状态 进入 MVC 越多,它就会从你的词汇表中消失。

    如果你看看 MVC 有哪些开源项目,你会得到你应该做什么的答案。

  • MVC Contrib app 通过创建扩展方法和助手添加了很多功能。他们的网格控件是创建可跨项目使用的可重用组件的典型方式
  • Telerik ,创建了一些包装 jquery 控件并进行 Assets 管理的扩展。
  • 最后我想如果你展望 future ,MVC 有 areas ,如果我解释得当,您将能够将您的项目分成多个较小的项目。
  • 关于asp.net - .NET MVC 应用程序中的可重用性单位是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1474303/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com