2

我正在开发我的第一个 ASP.Net MVC 应用程序。我正在使用 Razor 视图,MVC 版本是 3。我正在从数据库中以某种原始格式获取模型的数据。然后我对其进行一些处理,例如连接字符串,使用一些 linq 查询格式化日期列。我已经在模型类中拥有的所有数据。

我想知道所有这些代码执行都发生在服务器上。我想把这个负担从我的服务器转移到客户端机器上,我想把这个原始数据传递给我的视图,然后在视图中编写代码来做这个循环和格式化等。

我只是想确认这是否是继续前进的好方法,以及这是否真的减轻了我的服务器的一些负担。

谢谢

4

3 回答 3

2

在您的视图中编写的 C# 或 VB 不是客户端。它仍然是服务器端。它用于在传递给客户端之前操纵 HTML 的呈现。

您必须传递所有原始数据,然后使用 JavaScript 对其进行处理。

您的应用程序的性能将取决于每台客户端计算机,因此在 2 个用户之间并不一致。因此,维护会很棘手。

长话短说,我不推荐它。您的服务器很可能设计用于处理负载。这是适合这种事情的地方。

而且我还阅读了服务器/客户端代码执行关系。简单地做 MVC 是一个好的开始。它自然地教您网络的工作原理,而不是使用网络表单。

于 2012-05-05T07:57:18.850 回答
1

这可能是过早的优化。我怀疑服务器是否会在执行简单的事情(如字符串连接、格式化等)时陷入困境。

我建议您仅在遇到性能问题时才关注这一点;否则不值得努力。

于 2012-05-05T07:55:48.270 回答
0

我认为您将 MVC 中的视图与浏览器 HTML 混淆了。您可以在 View 中拥有任何 C# 代码,但不能在浏览器中。如果您的问题是关于在 View 中执行业务逻辑,请进一步阅读。

MVC 允许将任何类型的视图(移动、桌面、Web 应用程序)插入控制器。所以视图不应该做任何业务逻辑,否则你最终会复制业务逻辑。

LINK将帮助您了解 MVC。

视图中的数据格式根本不是问题,但是当您开始在视图中实现业务逻辑时,这就是问题(我想这就是您在视图中使用 linq 的意思)。

例如在 View 中,在 Model 实体上使用 linq 循环遍历集合并创建 HTML 表完全没问题,实际上 ViewModel 应该与 View 紧密耦合。

[尽量不要在这里变得哲学,但是:)] 最后,无论您使用什么架构,都不要限制自己跳出框框思考。几乎所有项目都使用多种模式,大多数(优秀)开发人员通过在不知不觉中实现模式来解决业务问题。:)

于 2012-05-05T08:08:04.783 回答