1

在我的 Web 应用程序框架(当前为 WebForms)中,我有一个类似于经典属性网格的控件。它使用对象 ID(数据库键)进行初始化,然后读取元数据以确定对象的类型和对象的属性。它将属性、字符串属性显示为文本框、布尔属性显示为复选框、枚举属性显示为下拉列表。在页面提交上有一个控制 ctrl.SaveData() 的方法,它将更改的属性值保存回数据库。

WebForm 控件树和事件模型很好地支持这种方法。现在我问自己是否有可能为 ASP.NET MVC 实现类似的解决方案。主要目标是拥有一个通用的、可重用的组件,可以在各种情况下轻松应用。此外,该解决方案必须足够灵活,以便将多个对象的多个组件实例放在一个页面上。在这里,自动生成的 WebForms HTML ID 也有帮助。

我很好奇你的想法!非常感谢您的回答!

4

1 回答 1

1

您可以使用包含足够元数据来识别正在编辑/保存的对象的自定义 ViewModel 来实现此效果。您可以将它与呈现 ViewModel 的局部视图结合使用。主页将使用 ViewModel 中的元数据将帖子定向到特定的控制器操作以保存该特定对象或将元数据传递回通用操作(可能作为隐藏输入),以便该操作可以选择正确的在其中保存数据的表。

就个人而言,我不会采用这种方法。我的感觉是,你的观点/行动越笼统,适应不同情况的工作就越多。我为查看对象集做过类似的事情,但对于详细视图或编辑,我喜欢使用更具体的模型和视图。

于 2009-07-18T15:01:39.670 回答