强类型视图中的错误消息 - 啥是“字典”?

Posted

技术标签:

【中文标题】强类型视图中的错误消息 - 啥是“字典”?【英文标题】:Error Message in Strongly Typed View - What is the "dictionary"?强类型视图中的错误消息 - 什么是“字典”? 【发布时间】:2013-04-09 14:50:10 【问题描述】:

以下是错误类型传入强类型视图时的错误消息示例:

The model item passed into the dictionary is of type 'foo', but this dictionary requires a model item of type 'bar'.

这个错误提示“这本词典”需要不同的模型。我的问题是,为什么是“字典”?如果错误消息说“此类需要'bar'类型的模型项”,对我来说会更有意义

错误信息指的是什么字典?

【问题讨论】:

模型被序列化为表单数据的字典。 【参考方案1】:

Dictionary 是一个框架类。字典用于保存 MVC 中的键/值集合。错误消息表明 Dictionary 的初始化类型与 MVC 尝试放入其中的项目不同。

http://msdn.microsoft.com/en-us/library/xfhwa508.aspx

This Google Search 显示了许多 ASP.NET MVC 使用的字典。

【讨论】:

谢谢罗伯特-但是什么字典?我想我在问幕后发生了什么。 不知道是哪一个;你还没有向我们展示你的代码。如果我猜的话,我会说是ViewDataDictionaryModelDataDictionary 嗯 - 将视图编译为一个类似乎是合理的,并且该类需要一个特定类型的模型。我猜在幕后有一个 Dictionary 用于实例化视图类(只是一个猜测)。 ASP.NET MVC 的源代码是freely available,如果你真的想知道细节的话。在源代码中搜索“传入字典的模型项是类型”

以上是关于强类型视图中的错误消息 - 啥是“字典”?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 强类型视图与否?

ASP.NET MVC 强类型部分视图,给出无法加载类型错误

ASP MVC 中的强类型视图

强类型字典内容

MVC 电影教程和强类型视图

如何从强类型视图模型创建视图?