我是asp.net核心的新手,我正在尝试在ASP.Net Core应用程序中呈现局部视图。部分视图的地址在运行时确定。我构建了一个视图模型,它从控制器解析到视图中,并包含所需的文件地址。
以下代码抛出以下编译器错误:
@Html.Partial(Model.File);
错误CS1973'IHtmlHelper'没有名为'Partial'的适用方法 但似乎有一个名称的扩展方法。扩展方法 无法动态调度。考虑转换动态参数或 在没有扩展方法语法的情况下调用扩展方法。
非常感谢任何帮助。
答案 0 :(得分:2)
最后的解决方案是在Razor文件中指定类型。以下一行有效:
@Html.Partial((string) Model.File)
答案 1 :(得分:0)
只是要添加Lachlan Fergusson的优秀答案(谢谢!),只是说如果您的视图的名称包含变量,那么您也会收到此消息,而不是它#39 ; s型。
所以,以下行为我提出错误:
@Html.Partial("UserDetailsPartial." + language, Model)
...但是当我加上这个时它就消失了......
@Html.Partial("UserDetailsPartial." + (string)language, Model)
在幕后,我根据语言有不同的部分,
UserDetailsPartial.es.html
UserDetailsPartial.de.html
UserDetailsPartial.fr.html
奇怪的是,以前(使用早期版本的.Net Core?)原始版本的工作正常。
所以,请将此添加到Microsoft的错误消息列表中,这些消息并不能解释问题所在。"