【问题标题】:Error Creating Simple Controller MVC创建简单控制器 MVC 时出错
【发布时间】:2013-07-08 11:38:11
【问题描述】:

我在 ASP.NET MVC4 VS 2012 中创建了一个简单的空控制器 Default1,但是当我运行它时,它给出了错误。

我的控制器如下:

public class Default1Controller : Controller
    {
        //
        // GET: /Default1/

        public ActionResult Index()
        {
            return View();
        }

     }

抛出以下错误:

[HttpException]: The controller for path '/Default1' 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.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,AsyncCallback callback, Object state)
   at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionSep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

路由配置:

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

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

实际上我在这次活动之前一直在创建控制器,但是我现在创建的控制器无法访问。

【问题讨论】:

  • 显示你用来调用控制器的代码并显示你的控制器。
  • 你是否有机会使用区域?
  • '是调用控制器的罪魁祸首
  • 你能删除那个控制器并添加一个新的“SampleController”然后编译吗?
  • 你的 RouteConfig 是什么样的?

标签: asp.net-mvc-4 visual-studio-2012 httpexception


【解决方案1】:
  routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Default1", action = "Index", id = UrlParameter.Optional }
            );

【讨论】:

  • 这并不能解决问题。控制器在问题中明确指定 - 提问者并未尝试将 Default1 设为默认控制器。
  • 嗨,他的控制器是Default1,他路由控制器是Home,所以找不到他的控制器源。这就是产生错误的原因。
  • 不,Homedefault 控制器 - 当控制器是 specified 时(如问题所示),默认控制器无关紧要。
  • 问题不在于默认控制器
  • 我的问题是我创建的任何控制器都会引发以下错误。我的想法是路线没有正确配置。
猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
相关资源
最近更新 更多