在 ASP.NET MVC 中,使用正确的类型化对象呈现用户控件时遇到类型错误

Posted

技术标签:

【中文标题】在 ASP.NET MVC 中,使用正确的类型化对象呈现用户控件时遇到类型错误【英文标题】:In ASP.NET MVC I encounter an incorrect type error when rendering a user control with the correct typed object 【发布时间】:2010-09-05 13:18:02 【问题描述】:

我遇到以下形式的错误:“传递到字典中的模型项的类型为 FooViewData,但此字典需要 bar 类型的模型项”,即使我传入了正确类型 (bar) 的对象键入的用户控件。

【问题讨论】:

【参考方案1】:

@MattMitchell 所说的可能是您看到此错误的原因。

如果你想知道为什么;这是因为当您在使用 RenderUserControl() 时将 null 作为 controlData 参数传递时,框架将尝试将视图数据从当前视图上下文传递到用户控件(参见 System.Web.Mvc 中的 UserControlExtensions.DoRendering 方法)。

【讨论】:

【参考方案2】:

可能发生的情况是渲染用户控件时提供的对象实际上是空的。

【讨论】:

以上是关于在 ASP.NET MVC 中,使用正确的类型化对象呈现用户控件时遇到类型错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 asp.net mvc 中重定向到正确的控制器操作

Asp.net MVC 中Controller返回值类型ActionResult

在 ASP.NET MVC3 中正确使用 TempData?

ASP.NET 5 MVC 6 中的单选按钮标记帮助程序

在 asp.net mvc 中编写查询的正确位置 [关闭]

如何在 ASP.NET MVC 5.2.3 和 Katana 中正确设置双重身份验证?