Asp.net mvc 在asp.net的视图模型中添加业务逻辑是否会增加传递给视图的对象的大小?

Asp.net mvc 在asp.net的视图模型中添加业务逻辑是否会增加传递给视图的对象的大小?,asp.net-mvc,optimization,view,viewmodel,Asp.net Mvc,Optimization,View,Viewmodel,这是我一直试图找到明确答案的东西,但迄今为止在网上没有找到任何运气。如果在ASP.NET项目中,我有一个视图模型,用于在浏览器中将数据传递给视图,那么包括访问模型层以获取数据的方法是否会增加传递的结果对象的实际大小?我的直觉是肯定的,我一直在尝试阅读堆栈溢出的其他答案,以找到一个可靠的答案来支持它,但没有运气 视图模型中有一些真正的整体方法,其中一些方法跨越100多行或更多行,通过LINQ操作过滤可枚举的数据列表。不,不应该。视图(通常)由Razor.cshtml构建并发送给用户。只有视图的内容

这是我一直试图找到明确答案的东西,但迄今为止在网上没有找到任何运气。如果在ASP.NET项目中,我有一个视图模型,用于在浏览器中将数据传递给视图,那么包括访问模型层以获取数据的方法是否会增加传递的结果对象的实际大小?我的直觉是肯定的,我一直在尝试阅读堆栈溢出的其他答案,以找到一个可靠的答案来支持它,但没有运气


视图模型中有一些真正的整体方法,其中一些方法跨越100多行或更多行,通过LINQ操作过滤可枚举的数据列表。

不,不应该。视图(通常)由Razor.cshtml构建并发送给用户。只有视图的内容(布局、捆绑的JS、样式表、页面本身等)才会发送给用户。ViewModel仅用于构建视图

MVC有一个称为的概念,即传入HTTP请求的数据映射到一组适当的参数。在请求时,将创建一个新的ViewModel并将其传递给相应的操作方法(或者如果请求可以映射到一组参数,则也会发生这种情况;不必是单个参数)


另一方面,拥有复杂的ViewModel会使模型绑定变得困难。在ViewModel中使用业务逻辑也是不受欢迎的;这使得重用和遵循变得更加困难。理想的做法是将其移动到业务层,或将其限制在控制器中。

您正在以生成的html的形式将视图传递到浏览器。向viewmodel添加业务逻辑不会影响html的大小。您的视图(动态生成的类)仅存在于服务器上。谢谢Ivaylo!JosephRT进一步解释了这一点,因此在本例中,问题似乎主要是耦合的。感谢您在这方面的帮助。我四处寻找这些信息,很惊讶我怎么没有碰到什么。在本例中,它更像是一个以MVC方式完成的web表单,而不是razor。我希望它是在剃须刀,但这是一个不同的事情。