在局部视图中:“传入字典的模型项类型为”

时间:2012-06-19 13:41:25

标签: asp.net-mvc-3

尽管我都在搜索,但我对一些基本的MVC概念缺乏了解。

我在Visual Studio中创建了一个MVC项目,其中包含部分视图_LogOnPartial.shtml。我只想访问与用户相关的视图中的信息,以放入用户下拉菜单。当我试图把它放在局部视图cshtml页面的顶部时,我得到了上面的错误:

@model MyProject_MVC.Models.UserRepository

当我尝试这个时,我也会收到错误:

@Html.Partial("_LogOnPartial", MyProject_MVC.Models.UserRepository)

'MyProject_MVC.Models.UserRepository'是'type',在给定的上下文中无效

2 个答案:

答案 0 :(得分:2)

@model _LogOnPartial.Models.UserRepository应该是:@model MyProject_MVC.Models.UserRepository

并且对于最后一部分,您必须提供UserRepository类型的实例作为第二个参数,而不是类型本身。

答案 1 :(得分:2)

您必须向局部视图提供MyProject_MVC.Models.UserRepository的实例。 _LogOnPartial强类型为该类型。它允许您在编译时访问其公共成员,并决定如何在视图中显示它。

如果要在该视图中使用自己的类型,首先必须更改强类型的类型。

@model MyProject_MVC.Models.UserRepository

然后,您必须在action方法中创建该类型的实例,并将其作为模型或模型的属性传递给视图。

public ActionResult LogOn()
{
    return View(new UserRepository());
}

现在,您可以在视图中以模型对象的形式访问此实例。

@Html.Partial("_LogOnPartial", Model);