如果这很明显,很抱歉,但这让我很困惑。指定型号后:
@model MyNamespace.MyModel
它没有显示任何错误,并且到MyModel
的路径是正确的,型号名称相同,一些方法似乎无法识别Model
类型,如下所示:
@Html.Partial("_Title", Model)
输出以下错误:
扩展方法不能动态调度
由于指定了Model
类型,因此不应显示。如果我试图再次铸造:
@Html.Partial("_Title", (MyNamespace.MyModel)Model)
Resharper说Cast是多余的,但错误消失了。
是什么导致MVC视图出现这种行为?
注意:我还有其他视图,它们以完全相同的方式定义了模型,并且使用了完全相同的局部视图,但它们工作正常。
我已经尝试删除文件并重新创建,但错误不断出现。
我不知道你为什么需要这么做。当您调用Partial()
并且没有指定模型时,当前模型将传递给Partial:(
之所以会发生这种情况,是因为在内部,当您将模型传递给Partial((时,MVC会复制当前ViewData(包括ViewData["Model"]
(并将其传递给下一个Partial,如果您没有指定值,则使用当前值。