2

尽管我进行了所有搜索,但我对一些基本的 MVC 概念缺乏理解。

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

@model MyProject_MVC.Models.UserRepository

当我尝试这个时,我也得到一个错误:

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

“MyProject_MVC.Models.UserRepository”是一个“类型”,在给定的上下文中无效

4

2 回答 2

2

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

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

于 2012-06-19T13:46:29.780 回答
2

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

如果你想在那个视图中使用你自己的类型,首先你必须改变它的强类型。

@model MyProject_MVC.Models.UserRepository

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

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

现在,您可以在视图中将此实例作为模型对象访问。

@Html.Partial("_LogOnPartial", Model);
于 2012-06-19T13:47:47.640 回答