繁体   English   中英

MVC路由尝试在虚拟目录上路由

[英]MVC Routing is Trying to Route on Virtual Directory

我刚刚开始了一个新的C#MVC程序。 我有很多这样的作品,但是这个没有,我也无法弄清楚为什么。

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{action}",
        defaults: new { controller = "Account", action = "LogOn" }
    );

}

它给了我这个错误:

System.Web.HttpException (0x80004005): The controller for path '/VIRTUALDIRECTORY' was not found or does not implement IController.
   at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
   at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
   at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory)
   at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

像我的其他站点一样,这是通过Visual Studio在虚拟目录中设置的。 具体来说,我将其设置为“不打开页面”,“本地IIS”,仅使用典型的URL: http:// localhost / VIRTUALDIRECTORY

我单击创建,然后单击确定,IIS中有VIRTUALDIRECTORY,(至少看起来)与其他虚拟目录的设置相同。

与其他程序相比,这个程序的唯一区别是我本质上是将一个VB.NET MVC程序复制到C#。 因此,我创建了一个空的C#MVC程序,然后复制并转换了这些类。 (显然)没有编译错误,但是我敢肯定有一个设置或某些我没有弄清楚的原因导致了这一错误。

有没有其他人知道如何解决这个问题?

我通过nuget引用了最新的MVC(5.2.3)。

不确定这是否适用于其他任何人,但问题是我自己的问题。

我将我的Controller拆分为多个“部分”类,在代码转换过程中,没有一个被标记为“公共”。

卫生署!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM