Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC Razor视图代码执行_C#_Asp.net_Asp.net Mvc 3 - Fatal编程技术网

C# MVC Razor视图代码执行

C# MVC Razor视图代码执行,c#,asp.net,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc 3,我正在开发我的第一个ASP.NETMVC应用程序。我使用的是Razor视图,MVC版本是3。 我从数据库中获取一些原始格式的模型数据。然后我对它进行一些处理,比如使用一些linq查询对字符串进行压缩,格式化日期列。模型类中已有的所有数据 我想知道所有这些代码都是在服务器上执行的。我想把这个负担从我的服务器转移到客户机上,我想把这个原始数据传递到我的视图,然后在视图中编写代码来完成这个循环和格式化等 我只是想确认这是否是一种继续前进的好方法,以及这是否真的减轻了我的服务器的一些负担 谢谢这可能是预

我正在开发我的第一个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)精简控制器。视图不应包含复杂逻辑。