为什么我不能在我的MVC应用程序中使用VS2010的“添加视图”功能?

时间:2011-02-18 18:30:41

标签: asp.net-mvc visual-studio-2010 asp.net-mvc-2

这很奇怪,

我有一个包含两个项目的解决方案......

Genesis.Domain - 是一个类库并且其中包含存储库。

Genesis_0_02 - 有实际的MVC控制器,视图等......而且它是启动项目

我正在修改存储库和mvc项目。我能够添加几个视图,但自动视图生成(右键单击+“添加视图”)停止工作。

弹出错误对话框,显示错误和堆栈跟踪。我不能复制粘贴它,但基本上它说:

C:\pathto\CodeTemplates\AddView\Empty.tt(-1,-1): error : An exception was thrown 
while running the transformation code. The process cannot continue. The following
exception was thrown:
System.IO.FileNotFoundException: Could not load file or assembly 'Genesis.Domain,
Version=1.0.0.0, Culture Neutral, etc.etc.' or one of its dependencies. The system
cannot find the file specified.
File name: 'Genesis.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

其次是我无法复制粘贴的堆栈跟踪。

是什么导致这个? Genesis.Domain被引用,并已通过所有开发引用。项目/解决方案编译得很好,运行正常。

我可以使用Genesis_0_02命名空间中的模型/类来创建视图。但不是来自Genesis.Domain命名空间。 (即使Genesis.Domain类确实显示在列表中。)

此外,在“添加视图”类列表中弹出了不常见的类。它们看起来像这样:

Genesis_0_02.Controllers.AdminMemberController+<>c__DisplayClass8+<>c__DisplayClasse>

我不知道那些来自哪里。

可能导致这种情况的原因是什么?如何让“添加视图”功能再次运行?

修改

顺便说一句:我可以手动创建新视图,但它们确实有用。

3 个答案:

答案 0 :(得分:1)

我有同样的问题。一位正在工作的同事通过调试模板过程解决了这个问题。他发现VS2010总是在本地文件夹中查找dll,在我们的例子中是:

“C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \”

我们在这个位置创建了文件夹后,我们将Dll及其依赖项放在此文件夹中,错误就消失了。

它认为这是VS2010中的明确错误。

我们必须在上面的路径中添加与引用的Dll的名称相匹配的文件夹。

答案 1 :(得分:0)

这听起来像你的类库项目的引用被搞砸了。您是否尝试从解决方案中删除类库项目,然后将项目重新添加到解决方案中?

我自己从未遇到过这个问题,但这是从这些错误信息中想到的唯一问题。

答案 2 :(得分:0)

这种行为很奇怪。我见过VS2008的怪异。

尝试以下几项事项

1]创建一个新的MVC Web项目并添加对Genesis.Domain的引用。并查看控制器的“添加视图”是否适用于它。

如果是,则在您的工作项目中验证web.config文件(在Under Views文件夹中)下面的配置 - 具体来说

  

PageParserFiltertype

<pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>

如果没有 然后尝试在开发机器上重新安装Framework和VS2010 MVC 2/3。

你也可以使用下面的链接 http://bradwilson.typepad.com/blog/2010/03/diagnosing-aspnet-mvc-problems.html

祝你好运!