-1

我正在使用默认预设项目在其上构建我自己的应用程序。
我添加了我自己的控制器MyController和一个My带有index.cshtml.

这是控制器代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebProject1.Controllers
{
    public class MyController: Controller
    {
        //
        // GET: /My/

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

    }
}

这是我的RouteConfig.cs

// ...
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 = "My", action = "Index", id = UrlParameter.Optional }
        );
    }
}
// ...

但是,当我开始调试并导航到/My/404 错误时,The resource or one of its dependencies cannot be found.会显示一条消息。

如何使我的控制器工作?

4

3 回答 3

0

除非您配置了任何区域,否则您应该能够访问您的操作, localhost/My/Index或者localhost/My如果您有默认路由并将操作作为索引。

该错误还将为您提供 ASP.NET 正在搜索以定位您的视图的区域列表。

于 2013-10-11T10:12:39.270 回答
0

这几乎可以肯定是某个地方的错字。我建议从头开始重新创建您的控制器和视图。

于 2013-10-11T10:13:37.690 回答
0

创建自定义路由并将其放在默认路由之前。

像这样:

    // ...
public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
     routes.MapRoute(
           name: "me",
           url: "me/{id}",
           defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
       );
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "My", action = "Index", id = UrlParameter.Optional }
        );
    }
}
// ...

希望这有效...

于 2013-10-11T10:26:55.940 回答