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重新编译您的项目,在您重新编译之前,刚刚添加的模型类不会出现在列表中。
【讨论】:
有时页面上的错误会导致你的智能感知在视图中爆炸。重新编译并运行(因此 asp.net 编译您的页面)有时会显示您搞砸的地方。以上是关于ASP.NET MVC 新手:为啥在创建强类型视图时我的模型不可用?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以创建自定义 ASP.NET MVC 强类型 HTML Helper?
为啥我们需要避免在 ASP.NET MVC 视图中直接使用 IQueryable?