ASP.NET MVC 新手:为啥在创建强类型视图时我的模型不可用?

Posted

技术标签:

【中文标题】ASP.NET MVC 新手:为啥在创建强类型视图时我的模型不可用?【英文标题】:ASP.NET MVC Newbie: why isn't my model available when creating a strongly-typed view?ASP.NET MVC 新手:为什么在创建强类型视图时我的模型不可用? 【发布时间】:2009-08-13 11:55:43 【问题描述】:

我从 ASP.NET MVC 开始,并使用 NerdDinner 作为参考。我做了以下事情:

    创建了一个新项目 添加了几个表格 为他们创建了 LINQ to SQL 创建了一个新控制器

My Models 目录现在包含 MyModel.dbml,在该目录下有 MyModel.designer.cs,其中包含与我的两个表相关的模型类(我们称它们为类别和产品)。

现在,在我的新控制器下,我想创建一个强类型视图。例如,我的控制器中有以下代码(对于我的应用程序,我必须按名称工作,并且“名称”字段是唯一的):

    public ActionResult Details(string name)
    
        MyModelDataContext db = new MyModelDataContext();
        Product user = db.Products.Single(t => t.Name == name);
        return View(user);
    

我想创建一个强类型视图。所以我右键单击“return View(user)”行,然后选择“添加视图...”。我单击“创建强类型视图”。当我点击“查看数据类”的下拉菜单时,我看不到我的模型,而只有:

    MyProject.Controllers.AccountMembershipService MyProject.Controllers.FormsAuthenticationService

我错过了什么?

【问题讨论】:

解决方法,以防您不知道 - 更改视图的签名:System.Web.Mvc.ViewPage => System.Web.Mvc.ViewPage 【参考方案1】:

重新编译您的项目,在您重新编译之前,刚刚添加的模型类不会出现在列表中。

【讨论】:

有时页面上的错误会导致你的智能感知在视图中爆炸。重新编译并运行(因此 asp.net 编译您的页面)有时会显示您搞砸的地方。

以上是关于ASP.NET MVC 新手:为啥在创建强类型视图时我的模型不可用?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以创建自定义 ASP.NET MVC 强类型 HTML Helper?

这是错误的,为啥不是? ASP.NET MVC 视图包

为啥 Asp.Net MVC 不在我的共享目录中搜索视图?

为啥我们需要避免在 ASP.NET MVC 视图中直接使用 IQueryable?

为啥 ASP.NET MVC3 区域和 Razor 视图会产生此错误?

asp.net mvc 视图和强类型视图数据