【发布时间】:2012-12-05 16:02:12
【问题描述】:
我正在开发一个网站,该网站将在世界各地使用,并且必须在地球上的任何时间任何地方都高度负责。这就是为什么我尝试使用所有可能的技巧来最大程度地减少在必须进行小规模维护时重新编译/重新启动网站的需要。
Asp.Net MVC 中编辑视图并由框架自动动态重新编译而不中断服务的能力非常棒,完全符合我的需求。但是如果我不能以类似的方式编辑底层模型并且必须重新编译整个东西,它的兴趣就会受到极大的限制。
所以我的问题:有可能以任何方式(甚至是一种糟糕的、骇人听闻的方式)在代码块中的视图本身内部定义视图模型类?
否则,我可以探索哪些路径来实现“可热编辑”网站(我的意思是:在网站仍然存在时可以重新编译哪些部分,并立即考虑更改)?
提前非常感谢您! :-)
【问题讨论】:
-
假设您可以在视图中定义模型。如何让控制器知道这些修改?
-
Unity(或 IoC/DI 容器)之类的东西会在这里提供帮助吗?所以你没有在视图中定义模型只是允许它动态改变......
-
如果可能的话,您所要求的将是一场维护噩梦。
-
当您将更新的 DLL 拖放到网站目录中时,IIS 会检测到更改并将继续无缝地为该站点提供服务(它通过影子复制程序集来实现),但有几个小警告。也可能会有短暂的延迟,因为它也做了一些工作(但不超过几秒钟)。您是否有任何特殊情况要避免?
-
@cadrell0 不是问题。只要绑定是由框架自动执行的,动态检索值并不是什么大问题。当然,控制器方法不会有静态的强类型和命名参数,我将不得不在请求中挖掘一下。
标签: c# asp.net-mvc view model