我正在开发一个 MVC 解决方案,我想为我正在创建的一些局部视图提供一个插件选项。我对每个插件都有单独的程序集,其中包含作为嵌入式资源的 PartialView 和它引用的 viewmodel 类。我使用虚拟文件提供程序来查找所需的 PartialView,这很好用……直到我尝试将 ViewModel 用于局部视图。
为了呈现局部视图,我在模型中有两个属性在运行时根据选择的选项进行设置......所以我使用以下内容:
Html.RenderPartial(Model.PartialViewName, Model.PartialViewModel)
其中 Model.PartialViewModel 是单独程序集中的所有视图模型实现的接口。
渲染局部视图时出现以下错误:错误 CS1061“对象”不包含“{PropertyName}”的定义,并且找不到接受“对象”类型的第一个参数的扩展方法“{PropertyName}”。 ..”我尝试访问的部分视图模型上的任何属性都会发生此错误。
但是,在调试模式下,我可以看到已传递给局部视图的视图模型并且它是正确的,并且所有属性都在那里并已填充。我什至已经删除了插件,只引用了命名的类和类型(而不是接口),我仍然得到这个错误。
有任何想法吗?任何人都能够将部分视图及其视图模型放在单独的程序集中并让它工作吗?谢谢你。