ASP.NET MVC命名空间重命名

时间:2009-02-05 18:05:30

标签: asp.net-mvc namespaces

我将我的项目从MyProjectName重命名为MyNewProjectName。我对解决方案进行了完整的查找/替换,并更改了测试项目。在Default.aspx.cs中,我得到了带有

的InvalidOpterationException

“控制器名称'Home'在以下类型之间不明确: MyNewProjectName.Controllers.HomeController MyProjectName.Controllers.HomeController“。

我该如何解决?感谢

6 个答案:

答案 0 :(得分:33)

您是否尝试过重建(右键单击项目,然后选择“重建”)?同时检查bin以确保只有具有新名称的程序集。另外,仔细检查项目属性以验证是否输出了程序集的名称。如果您不确定输出的程序集的名称是什么,请从bin中删除所有dll并重建。

答案 1 :(得分:8)

您需要检查MVC Web项目中的/ bin文件夹,并删除其中的所有内容并执行新的构建,或删除旧的DLL(MyProjectName.dll)。

ASP.Net MVC运行时使用反射来确定必须根据路由信息将请求传递给哪个控制器,并且它找到两个符合条件的控制器(具有相同的名称),并且每个控制器都在不同的部件。这就是你得到例外的原因。

执行清除似乎无法清除bin文件夹。所以你必须手动删除文件。

答案 2 :(得分:5)

至于我自己,我在View文件夹的web.config中引用了一旦它被改变,一切正常!

答案 3 :(得分:2)

双击或右键单击MyProject并打开。在应用程序设置中,更改程序集名称和根名称空间以匹配重命名的项目名称。

答案 4 :(得分:0)

右键单击该项目,选择“在Windows资源管理器中打开文件夹。

删除/ bin和/ obj

中的“OLDPROJECTNAME”对象

答案 5 :(得分:0)

在我的项目中,我遇到了相同的症状。要解决此问题,我必须:

  • 转到您的App_Start并检查类中新命名空间是否正确。

  • 右键单击Global.asax并转到“显示标记”,然后检查“继承”属性是否具有新的命名空间。

赞:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyNewNamespace.MvcApplication" Language="C#" %>

重建应用程序。

相关问题