我创建了一个通用控制器类
namespace OxygenFramework.MvcController
{
public class MvcController<TEntity> : Controller
where TEntity : class
{
public void UpdateModelState(TEntity t)
{
...
}
}
}
然后我用它如下
namespace LeitnerMVC.Controllers
{
public class HomeController : MvcController<Account>
{
//
// GET: /Home/
public ActionResult Index()
{
UpdateModelState(t);
return View();
}
}
}
但是当运行mvc应用程序页面时显示此错误
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
在网上搜索后,我找到了解决问题的方法
void Application_Start(object sender, EventArgs e)
{
ControllerBuilder.Current.DefaultNamespaces.Add("OxygenFramework.MvcController");
}
但是上述解决方案对我不起作用!并再次显示Http 404错误
当使用Controller而不是MvcController页面时,显示没有问题!
谁能帮我 ?
更新:
经过多次调查,我了解了为什么会出现此问题,但我仍然不知道如何解决该问题。
当我将MvcController的源代码移出我的框架assemby(OxygenFramework.MvcController)并将其移入MVC项目时,MvcController可以工作,但是当我从OxygenFramework程序集引用MvcController时,MVC显示404错误!
现在我知道发生此问题的原因是MvcController进入另一个程序集
但我不知道如何解决这个问题
注意:OxygenFramework程序集中只有MvcController的通用实现
并且所有Controller都位于默认的Controllers文件夹中
最佳答案
经过多次调查,我发现了问题
我想说@Agat谢谢:)
但是解决方案:
我在框架中使用System.Web.Mvc.dll版本4.0,但在MvcApplication中使用System.Web.Mvc.dll 5.0!
这种干扰会从继承中导致404错误:D