我正在使用默认预设项目来构建我自己的应用程序
我添加了自己的控制器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.
行的消息。
如何让我的控制器工作?
答案 0 :(得分:0)
除非您配置了任何区域,否则您应该能够访问您的操作
localhost/My/Index
或localhost/My
如果您的默认路由以操作作为索引。
该错误还将为您提供ASP.NET搜索以查找视图的区域列表。
答案 1 :(得分:0)
这几乎肯定是某个地方的错字。我建议从头开始重新创建控制器和视图。
答案 2 :(得分: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 }
);
}
}
// ...
希望这有效......