我正在开发我的第一个ASP.Net MVC应用程序。我正在使用Razor视图,MVC版本是3。 我以某种原始格式从数据库中获取模型的数据。然后我对它进行一些处理,比如查询字符串,使用一些linq查询格式化日期列。我已经在模型类中拥有的所有数据。
我想知道所有这些代码执行都发生在服务器上。我想将这个负担从我的服务器转移到客户端机器,我想将这些原始数据传递给我的视图,然后在视图中编写代码以执行此循环操作和格式化等。
我只是想确认这是否是一个很好的方法,如果这确实从我的服务器中释放了一些负担。
由于
答案 0 :(得分:1)
这可能是预成熟的优化。我怀疑服务器是否会陷入执行字符串连接,格式化等简单的事情。
如果您遇到性能问题,我建议您只关注此问题;否则不值得努力。
答案 1 :(得分:1)
在您的视图中写入的C#或VB不是客户端。它仍然是服务器端。它用于在传递给客户端之前操纵HTML的呈现。
您必须传递所有原始数据,然后使用JavaScript处理它。
您的应用的性能取决于每台客户端计算机,因此两个用户之间不一致。因此,维护将是棘手的。
总而言之,我不推荐它。您的服务器很可能是为处理负载而设计的。这是适合这种事情的地方。
我还会阅读服务器/客户端代码执行关系。简单地做MVC是一个好的开始。它自然会教你如何比使用网络表单更有效地工作。
答案 2 :(得分:0)
我认为你把MVC中的View与浏览器HTML混淆了。您可以在View中使用任何C#代码,但不能在浏览器中使用。如果您对View中的业务逻辑提出疑问,请进一步阅读。
MVC允许将任何类型的视图(移动,桌面,Web应用程序)插入控制器。因此,视图不应该执行任何业务逻辑,否则您将最终复制业务逻辑。
这LINK将有助于您理解MVC。
视图中的数据格式根本不是问题但是当您开始在视图中实现业务逻辑时(我想这就是您在视图中使用linq的意思)。
例如在View中,使用模型实体上的linq循环遍历集合并创建HTML表格是完全可以的,实际上ViewModel应该与View紧密耦合。
[努力不要在这里做哲学但是:)]最后你使用的任何架构都不要限制自己开箱即用。几乎所有项目都使用多种模式,大多数(好)开发人员通过不知不觉地实现模式来解决业务问题。 :)