C# MVC Razor视图代码执行
我正在开发我的第一个ASP.NETMVC应用程序。我使用的是Razor视图,MVC版本是3。 我从数据库中获取一些原始格式的模型数据。然后我对它进行一些处理,比如使用一些linq查询对字符串进行压缩,格式化日期列。模型类中已有的所有数据 我想知道所有这些代码都是在服务器上执行的。我想把这个负担从我的服务器转移到客户机上,我想把这个原始数据传递到我的视图,然后在视图中编写代码来完成这个循环和格式化等 我只是想确认这是否是一种继续前进的好方法,以及这是否真的减轻了我的服务器的一些负担C# MVC Razor视图代码执行,c#,asp.net,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc 3,我正在开发我的第一个ASP.NETMVC应用程序。我使用的是Razor视图,MVC版本是3。 我从数据库中获取一些原始格式的模型数据。然后我对它进行一些处理,比如使用一些linq查询对字符串进行压缩,格式化日期列。模型类中已有的所有数据 我想知道所有这些代码都是在服务器上执行的。我想把这个负担从我的服务器转移到客户机上,我想把这个原始数据传递到我的视图,然后在视图中编写代码来完成这个循环和格式化等 我只是想确认这是否是一种继续前进的好方法,以及这是否真的减轻了我的服务器的一些负担 谢谢这可能是预
谢谢这可能是预成熟的优化。我怀疑服务器是否会在执行字符串连接、格式化等简单操作时陷入困境 我建议你只有在遇到性能问题时才关注这一点;否则就不值得付出努力。C#或在您的视图中编写的VB不是客户端。它仍然是服务器端。它用于在传递给客户端之前操作HTML的呈现 您必须传递所有原始数据,然后使用JavaScript进行处理 应用程序的性能取决于每台客户端计算机,因此两个用户之间的性能不一致。因此,维护工作将非常棘手 长话短说,我不推荐它。您的服务器很可能是为处理负载而设计的。这正是做这类事情的好地方
我还阅读了服务器/客户端代码执行关系。简单地做MVC是一个好的开始。与使用web表单相比,它更自然地教会了您web是如何工作的。我认为您将MVC中的视图与浏览器HTML混淆了。您可以查看任何C#代码,但不能在浏览器中查看。如果您的问题是关于在视图中执行业务逻辑,请进一步阅读 MVC允许将任何类型的视图(移动、桌面、web应用程序)插入控制器。因此,视图不应该执行任何业务逻辑,否则最终会复制业务逻辑 这将有助于您理解MVC 视图中的数据格式根本不是问题,但当您开始在视图中实现业务逻辑时,这就是问题所在(我想这就是您在视图中使用linq的意思) 例如,在视图中,使用模型实体上的linq循环一个集合并创建一个HTML表是完全正确的,事实上ViewModel应该与视图紧密耦合
[在这里尽量不带哲学色彩,但:)]最后,无论你使用什么架构,都不要限制自己跳出框框思考。几乎所有的项目都使用多种模式,大多数(优秀的)开发人员通过不知不觉地实现一种模式来解决业务问题。:) 事实上,这不仅仅是格式化和caoncatnation,我只是递归循环并对其执行大量linq查询,然后生成所需的数据格式,这就是为什么我要问这个问题。嗯,linq不能在浏览器上执行,所以这不是一个真正的选项:(你应该遵循fat模型的模式(viewmodes)精简控制器。视图不应包含复杂逻辑。