gpt4 book ai didi

asp.net-mvc - 新的 ViewModel 并没有淘汰 ASP.NET MVC 3 中的 ViewModel 模式,对吧?

转载 作者:行者123 更新时间:2023-12-04 06:47:15 24 4
gpt4 key购买 nike

在我的理解中,ViewModel 模式旨在将所有相关数据传递给 View,因为 1) View 不应执行任何数据检索或应用程序逻辑,2) 它在内部启用类型安全、编译时检查和编辑器智能感知查看模板。

由于动态表达式是在运行时定义的,这是否意味着我们没有得到 2) 的任何好处?

最佳答案

您不会失去任何现有功能。您仍然可以拥有强类型 View ,以便在访问 Model 时属性它将是您指定的类型。唯一添加的是访问 ViewData 字典中项目的更短方法。

而不是以下

ViewData["MyData"]

你可以有
View.MyData

请注意,您不会失去任何类型安全性,因为您从未真正拥有任何类型安全性。在前一种情况下,键是一个字符串(不确定它是否存在于字典中),而值是一个对象,所以除非你转换它,否则你不能用它做那么多。在后者中,您也不会获得智能感知,并且必须将返回值转换为有用的值。

实际上执行 View.MyData只需获取属性名称(“MyData”)并返回来自 ViewData 字典的值。

可以说,您失去的一件事是能够在键名中包含不是合法 C# 标识符的空格或其他字符。

关于asp.net-mvc - 新的 ViewModel 并没有淘汰 ASP.NET MVC 3 中的 ViewModel 模式,对吧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3571246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com