如何在服务器上解决“传入字典的模型是字符串类型但需要对象”,本地主机没问题

Posted

技术标签:

【中文标题】如何在服务器上解决“传入字典的模型是字符串类型但需要对象”,本地主机没问题【英文标题】:How to solve "model passed into the dictionary is of type string but requires object" just on server, local host okay 【发布时间】:2017-02-18 17:18:49 【问题描述】:

我创建了一个局部视图,我重复使用了两次。我用下面的代码将此部分视图称为:

@html.Partial("_TekstBewerker", Model.Text)

属性Model.Text 是一个字符串,不为空。在下图中,您可以找到我的部分视图的代码,左边是服务器上的当前版本,右边是发布后的代码。

你看到代码是相同的两倍,但在服务器上我有这个异常:

InvalidOperationException:传入字典的模型项的类型为String,但此字典需要NieuwBlogViewModel 类型的模型项。

在发布我的部分视图的新版本之前,模型确实是NieuwBlogViewModel而不是String。这必须更新,但事实并非如此。

在本地主机上我对这段代码没有任何问题。

哦,是的,差点忘了说我已将部分视图替换为 Shared 文件夹而不是 Admin 文件夹。最后一个文件夹是我的局部视图的先前位置。

这可能是异常的问题吗?我该如何在服务器上解决这个问题?

【问题讨论】:

@Html.Partial("~/Views/Folder/ViewName.cshtml") 试试吧 【参考方案1】:

似乎当您将部分从一个地方移动到另一个地方时,旧文件以某种方式保留在服务器上 - 它没有被删除。由于 ASP.NET MVC 使用约定按顺序扫描文件夹,因此它首先选择旧文件。确保它在服务器上从旧位置删除。当您明确指定文件的位置时,ASP.NET MVC 将直接使用新文件,这就是它工作的原因,但通常最好还是依赖约定。

【讨论】:

【参考方案2】:

通过@BalajiMarimuthu 的评论,我找到了正确的解决方案。现在我使用这段代码:

@Html.Partial("~/Views/Folder/ViewName.cshtml", Model.text)

现在我只有一个问题:为什么我的问题中的情况在服务器上不起作用?

【讨论】:

以上是关于如何在服务器上解决“传入字典的模型是字符串类型但需要对象”,本地主机没问题的主要内容,如果未能解决你的问题,请参考以下文章

电脑连接不上服务器远程桌面,如何解决?

在 ubuntu 服务器上部署 vuejs 应用程序时如何解决剪贴板错误

如何解决我的 PHP 页面上的 500 内部服务器错误?

如何在服务器上解决“传入字典的模型是字符串类型但需要对象”,本地主机没问题

如何解决在fedora上安装xampp的问题?

如何解决本地系统上的 Cors 问题?