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

Does adding business logic in a view model in asp.net increase the size of the object being passed to the view?

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

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

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

MVC 有一个名为 model binding 的概念,即将传入的 HTTP 请求的数据映射到一组适当的参数。根据请求,将创建一个新的 ViewModel 并将其传递给适当的 Action 方法(或者如果请求可以映射到一组参数,那也会发生;不必是单个参数)。

附带说明一下,拥有复杂的 ViewModel 会使模型绑定变得困难。在 ViewModel 中包含业务逻辑也是不受欢迎的;这使得重用和遵循变得更加困难。最好将它移出到您的业务层,或者禁止它进入您的控制器。