2016-05-12 62 views
0

我创建了一个局部视图来保存用户的电子邮件。 部分视图是页面位置在共享文件夹下。当部分视图在视图文件夹下的任何视图内呈现时,它都可以正常工作。这是关于页面,联系页面等 但是,当我将局部视图放置在_Layout页面的页脚时会出现问题。部分视图接受电子邮件并保存数据,但当它返回时会给出错误。MVC5部分视图错误

传递到词典中的模型项的类型为“System.Collections.Generic.List`1 [Test.Models.FAQ]”,但是这需要字典类型Test.Models.Subscribes的”一个模型项”。

我试图用渲染和部分意见

@{ Html.RenderPartial("_Sub"); } and @Html.Partial("_Sub") 

我也尝试添加参数,但会得到同样的错误。

@{ Html.RenderPartial("_Sub",ViewData.Models.Subscribe); } and @Html.Partial("_Sub", model :Model) 

这个局部视图不让我渲染其他视图也给出同样的错误。 视图正在执行验证并将数据保存到数据库。

如何解决此错误。还是不可能在模型中使用部分视图?

+0

检查此问题:[链接](http://stackoverflow.com/questions/2775860 /如何传递模型从一个视图到一个局部视图) – PhillipXT

+0

部分视图显示一个创建从接受电子邮件。我怎样才能使用视图数据的形式? –

+0

该消息是自解释的。主视图中的模型是'List ',并将其传递给具有'@model Test.Models.Subscribees'的部分。您需要将'Subscribes'的一个实例传递给partial - 例如'@ {Html.RenderPartial(“_ Sub”,new Subscribes()); }' –

回答

1

传递到词典中的模型项的类型为“System.Collections.Generic.List`1 [Test.Models.FAQ]”,但是这需要字典类型Test.Models.Subscribes的”一个模型项”。

看起来,您将两个不同的模型传递到一个强类型视图中,当您将部分模型传递给布局时,它将“会见”来自生成视图的另一个模型。 为了防止它尝试(例如):将您的模型包装到模型包装中,或尝试使用元组,请参阅Multiple models in a view

+0

谢谢从局部视图中删除模型。它解决了任何问题 –

+0

通过创建模型的新实例并传递实例将解决问题 –