如何解决 "model passed into the dictionary is of type string but requires object" 就在服务器上,本地主机没问题

How to solve "model passed into the dictionary is of type string but requires object" just on server, local host okay

我创建了一个重复使用两次的局部视图。我用下面的代码调用这个部分视图:

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

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

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

InvalidOperationException: The model item passed into the dictionary is of type String, but this dictionary requires a model item of type NieuwBlogViewModel.

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

在本地主机上,这段代码没有问题。

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

这会不会是异常的问题,我该如何在服务器上解决这个问题?

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

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

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

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