我正在为组织开发一个非常庞大且复杂的基于ASP.NET 2.0 Webforms的业务产品套件的MVC原型。现有应用程序内置的功能之一是,如果用户在Webforms UI上进行了任何更改,它只会命中数据库来存储结果集。 Web应用程序内置了一个完整的图层来跟踪“如果用户更改”这一事物。
我想知道在ASP.NET MVC中是否有一个提供/功能来确定用户在视图上更改了哪些属性?这个想法很简单,用户看到一个视图,可能会进行一些更改并点击“保存”。接受帖子的控制器需要弄清楚用户是否更改了模型的状态,只有在状态发生变化时才保存。
有什么想法吗?
PS:我将其标记为mvc-2和mvc-3,因为它是原型。我目前正在MVC 2中学习/开发这个,但如果能更好地满足我们的需求,我会很快转向MVC 3。
答案 0 :(得分:1)
我想知道在ASP.NET MVC中是否有一个提供/功能来确定用户在视图上更改了哪些属性?
不,MVC中没有任何事情可做。 WebForms通过在视图状态中包含字段的原始值来实现这一点,但是在其核心MVC中包含HTTP的无状态性不会这样做。
如果您的(视图)模型类型足够规则,您可以构建脚手架来执行此操作(并且您拥有的类型越多,这样做的好处就越多)。我在这些行上做了一些原型,其中每个视图模型类型在更新数据库之前更新模型类型时确定是否存在更改(从而绕过更新)。