C# 部分视图的参数类型错误--这怎么可能?

C# 部分视图的参数类型错误--这怎么可能?,c#,asp.net,.net,asp.net-mvc,C#,Asp.net,.net,Asp.net Mvc,我的一个视图(cshtml文件)中有以下行: 在我的实验室里,一切似乎都很好。但在部署中,我们看到以下错误: System.InvalidOperationException:传递到字典的模型项的类型为“ProviderContactInfo”,但此字典需要类型为“RatingCategorySummaryModel”的模型项 模型明确为类型提供者联系人信息,而模型。评级信息明确为类型评级类别摘要模型。那么,这一行如何通过typeProviderContactInfo 有人能看到这条线可能产生错

我的一个视图(cshtml文件)中有以下行:

在我的实验室里,一切似乎都很好。但在部署中,我们看到以下错误:

System.InvalidOperationException:传递到字典的模型项的类型为“ProviderContactInfo”,但此字典需要类型为“RatingCategorySummaryModel”的模型项

模型
明确为类型
提供者联系人信息
,而
模型。评级信息
明确为类型
评级类别摘要模型
。那么,这一行如何通过type
ProviderContactInfo

有人能看到这条线可能产生错误的任何情况吗

编辑


哦,我应该指出,上面这条线也是局部的。(部分视图正在加载另一个部分视图。)这可能与问题有关。

mmm我不测试,但可能这项工作:

@Html.Partial("_ProviderRatingWidget", ((RatingCategorySummaryModel)Model.RatingInfo))
问候,


k

我已验证,如果您试图传递的属性为空,则将传递当前模型。您可以通过以下方法解决此问题:

@Html.RenderPartial("_ProviderRatingWidget", new ViewDataDictionary(Model.RatingInfo));

希望有帮助

你能发布调用视图的控制器吗?你能发布模型和局部视图吗?在这种情况下,这将比控制器更有帮助。模型上RatingInfo的数据类型是什么?在局部视图中声明的@model是什么?这个错误是说它们是不同的。@mayabelle:如果你阅读这个问题,你会发现
RatingInfo
的类型明显是
RatingCategorySummaryModel
。我认为整个局部视图太多,无法发布。你认为什么信息会有用?很抱歉我错过了。您是否检查了RatingInfo是否为空?我相信如果当前模型(即ProviderContactInfo)为空,MVC将自动传入。@mayabelle:我想知道它是否为空。这不是我在实验室测试它的时候。你有关于当它为空时传递什么的任何信息吗?不,这不是问题。是的,我还能够验证当它为空时传递
Model.Property
将传递
Model
。这是出乎意料的。我希望部分视图能够测试null本身。好发现。谢谢
@Html.RenderPartial("_ProviderRatingWidget", new ViewDataDictionary(Model.RatingInfo));