【发布时间】:2012-03-12 13:42:16
【问题描述】:
我创建了一个新的 C# asp.net mvc 4.0 (beta) Internet 应用程序,在 Visual Studio 2010 (sp1) 的“添加视图”对话框中出现了一些奇怪的行为。 当我决定创建一个强类型视图时,在“添加视图”对话框中,模型类下拉菜单不会显示我的 ViewModel 类。
为了记录,是的,我确实在触发添加视图对话框之前编译了应用程序。
我相信我已经查明了问题,但不知道如何解决它。 如果有人想重现该行为,以下是重现步骤:
- 在 Visual Studio 2010 (sp1) 中,新建一个 C# asp.net MVC 4.0 (测试版)互联网应用程序。
- 在 Models 文件夹中,创建一个新的简单类,名为 “GazouViewModel.cs”
- 构建应用程序,打开 HomeController,右键单击 Index() ActionResult 并选择 Add View…
- 在“添加视图”对话框中,选中“强类型视图”复选框并 在 Model 类:下拉列表中,您会注意到您的“GazouViewModel”
- 在解决方案资源管理器中,右键单击您的项目并选择“管理 NuGet 包”
- 搜索、查找并安装“Bootstrapper.Autofac”包。
- 重建应用程序并验证您的“GazouViewModel”是否仍然 显示在“添加视图”下拉对话框中。
- “GazouViewModel”仍应显示在下拉列表中。
- 在解决方案资源管理器中,右键单击您的项目并选择“管理 NuGet 包”
- 搜索、查找并安装“Autofac ASP.NET MVC4 (Beta) 集成”包。
- 重建应用程序并验证您的“GazouViewModel”是否仍然 显示在“添加视图”下拉对话框中。
- “GazouViewModel”仍应显示在下拉列表中。
- 在解决方案资源管理器中,右键单击您的项目并添加一个新类 (Class1.cs) 任何地方都无关紧要。
- 使 Class1 实现 IAutofacRegistration 并实现 界面。
- 重建应用程序并验证您的“GazouViewModel”是否仍然 显示在“添加视图”下拉对话框中。
- “GazouViewModel”不再显示在 Model 类中 下拉菜单。
似乎一旦我创建了一个实现 IAutofacRegistration 接口的类并构建了应用程序,我就无法再在该下拉列表中查看我的 ViewModel。
谁能确认他们得到的结果是否与我相同? 更重要的是,如何解决这个问题?
重要提示:我在 mvc 3.0 应用程序中尝试了完全相同的步骤,并且发生了完全相同的行为……所以这与 BETA 版本无关。
真诚的 文斯
【问题讨论】:
-
如果其他人可以复制我会调查。得到确认后给我发短信。
-
我可以复制。 VS2010 SP1。 MVC4 测试版。干净安装。如果我评论 IAutofacRegistration 实现,它会突然开始工作。很奇怪。
-
这里也一样,我在重现这些步骤时遇到了同样的问题。我认为这是一个反对使用非常强大的 Autofac 模块和 Bootstrapper 的情节(或者可能不是,谁知道^^)
-
我也遇到了同样的问题!我还收到消息:“正在运行转换:输入文件似乎正在使用此模板不支持的架构版本。这可能会导致编译错误。请使用“添加新生成的项目”添加更新的模板”
-
您提到它没有显示在下拉列表中,但是如果您手动创建视图并将其手动分配给模型,它仍然有效吗?
标签: asp.net-mvc visual-studio-2010