0

以下 rout 注册适用于我的 asp.net MVC 应用程序

    routes.MapRoute("TrackingChannels", "TrackingChannels/{action}",
        new { controller = "TrackingChannels", action = "Index" });

当我改变它来捕捉这个网址时,

我收到resource not found错误

对于 localhost:85\dis\TrackingChannels

        routes.MapRoute("TrackingChannels", "Dis/TrackingChannels/{action}",
            new { controller = "TrackingChannels", action = "Index" });

我怎样才能解决这个问题?

4

1 回答 1

0

好吧,我需要出去,所以我现在就发布这个,因为我不知道我还要多久。

我设置了一个默认的 MVC 3 项目并更改了路由以匹配您的情况。

全球.asax:

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

    routes.MapRoute(
        "TrackingChannels", 
        "Dis/TrackingChannels/{action}", 
        new { controller = "TrackingChannels", action = "Index" }
    );

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

添加了一个TrackingChannelsController

public class TrackingChannelsController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

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

我特意添加了这个Test动作,看看是否/dis/trackingchannels/{action}也能奏效。然后我添加了几个视图,从而产生了以下项目结构:

项目设置

最后,这是在浏览器中指定 URL 的结果:

首先是/dis/trackingchannels

TrackingChannels 索引

第二个/dis/trackingchannels/test

TrackingChannels 测试

在没有看到您的项目的情况下,我唯一能说的就是仔细检查 URL 是否匹配正确的路由。为此,您可以使用Phil Haack 的 RouteDebugger

于 2012-04-19T20:23:28.367 回答