C# ASP.NET MVC3升级版-“;方法[whatever]尝试访问方法System.Web.Mvc.Controller.View(…)失败“;
我有一个在MVC2中运行良好的单元测试。测试只定义控制器上的操作、必要的存根,并测试视图的名称。但是,在升级到MVC3之后,当我调用该方法时,会出现上述错误。站点MVC3升级工作正常;我只是因为升级而导致这些单元测试失败。谢谢 以下是我的行动:C# ASP.NET MVC3升级版-“;方法[whatever]尝试访问方法System.Web.Mvc.Controller.View(…)失败“;,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我有一个在MVC2中运行良好的单元测试。测试只定义控制器上的操作、必要的存根,并测试视图的名称。但是,在升级到MVC3之后,当我调用该方法时,会出现上述错误。站点MVC3升级工作正常;我只是因为升级而导致这些单元测试失败。谢谢 以下是我的行动: public partial class GadgetController { [SetterProperty] public IATCGadgetProxy ATCGadgetService { get; set; } pub
public partial class GadgetController
{
[SetterProperty]
public IATCGadgetProxy ATCGadgetService { get; set; }
public ActionResult LoadForums(bool popularOnly, bool myThreads, int itemCount)
{
var model = ATCGadgetService.LoadForums(popularOnly, myThreads, itemCount);
return View("AskTheCommunity-Forums", model);
}
}
这是测试。当它从操作返回视图时失败
[TestMethod]
public void Test_Forums_Action_Type()
{
GadgetController controller = new GadgetController();
controller.ATCGadgetService = new ATCGadgetServiceStub();
ViewResult result = controller.LoadForums(false, false, 10) as ViewResult;
Assert.IsNotNull(result);
Assert.AreEqual("AskTheCommunity-Forums", result.ViewName);
}
将一个项目升级到MVC 3让我抓狂的原因之一就是这些奇怪的、无法解释的错误。直到我发现并不是所有的项目都升级到MVC 3(在您的例子中,这可能是测试项目)并保留在MVC 2中,这导致了一些非常奇怪的行为,比如您描述的行为。请检查测试项目中System.Web.Mvc(可能还有相关程序集)的版本。我知道这是一个旧线程,但我刚刚在Mvc 5.2.3中遇到了相同的错误。。。但是使用Xunit。归根结底,这并不重要,因为解决问题的方法是一样的 首先,您必须确保MVC已添加到您的测试项目中。我通过NuGet添加了它: 安装软件包Microsoft.AspNet.Mvc-版本5.2.3 或者,您可以将该版本更改为您正在使用的任何MVC版本 然后,我仍然有错误。我刚刚发现App.config页面缺少信息。一旦我确定我有了这些台词,一切都正常了:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- Other config here -->
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
请显示您正在尝试测试的代码以及您的测试。在目前的状态下,你的问题很难回答。@Ryan,这对你有帮助吗?你没有给出任何反馈。当我编译一个引用MVC 4的项目,然后部署到一个有MVC 3的网站时就是这样。我改变了对MVC3的引用,事情开始运作了。谢谢