Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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
Asp.net mvc 什么时候应该避免使用强类型viewdata?_Asp.net Mvc_Model View Controller - Fatal编程技术网

Asp.net mvc 什么时候应该避免使用强类型viewdata?

Asp.net mvc 什么时候应该避免使用强类型viewdata?,asp.net-mvc,model-view-controller,Asp.net Mvc,Model View Controller,我很享受在我的视图和控制器中缺少“神奇的字符串”,但是这种方法有什么缺点吗 好像没有。我在这里和那里读过一些博客文章,这些文章暗示了另一种情况。模型的激增,在极端情况下是每个动作建模,以支持可能与数据模型没有直接关系的其他视图属性。例如,如果视图因角色而异,则需要创建新模型来封装数据模型和与角色相关的设置。通过使用数据模型作为视图模型,并通过“魔术字符串”向ViewData添加一些设置,可以实现相同的效果 编辑这不是“避免”强类型视图的理由,而是为了在选择何时创建新的、视图特定的模型,而不是使用

我很享受在我的视图和控制器中缺少“神奇的字符串”,但是这种方法有什么缺点吗


好像没有。我在这里和那里读过一些博客文章,这些文章暗示了另一种情况。

模型的激增,在极端情况下是每个动作建模,以支持可能与数据模型没有直接关系的其他视图属性。例如,如果视图因角色而异,则需要创建新模型来封装数据模型和与角色相关的设置。通过使用数据模型作为视图模型,并通过“魔术字符串”向ViewData添加一些设置,可以实现相同的效果


编辑这不是“避免”强类型视图的理由,而是为了在选择何时创建新的、视图特定的模型,而不是使用现有模型并使用ViewData属性对其进行扩展时提供一些平衡。

我不建议避免使用强类型ViewData,但我相信有些人会不同意。我可以理解,如果你在做快速原型设计,而你仍然在胡乱处理要显示的数据。强类型将为您提供更好的调试和编码体验。此外,花时间思考viewdata将使您更好地理解设计,并最终获得更高质量的代码。

据我所知,强类型viewdata没有任何缺点。我不明白为什么神奇的字符串和匿名对象是MVC框架的一部分。我尽量避开他们。您不想在代码的其余部分传递类型对象的参数,那么为什么要在UI中传递呢?

我同意。强类型将是,并且已经是,我的主要路径。只是在寻找一些需要注意的事情:)。如果创建强类型视图总是一个好主意,我会感到惊讶。但如果是的话,我会很惊讶的。你的意思是没有任何缺点吗?