收到MVC路由问题404

时间:2016-12-06 16:17:18

标签: c# asp.net-mvc asp.net-mvc-routing

我试图通过ajax调用一个动作方法,但我得到的是404.为了说明,以下是我的ajax:

  $.ajax({
            type: "GET",
            url: "/Product/LandingPage",
            data: {trackingCode: trackingCode, productId: productId},
            success: function (data) {
                alert("I worked!");
            }
        });

通过提示参数,我可以看到trackingCode和productId都已成功设置,因此不是问题。我想,为了测试这个,我应该能够像这样直接调用URL:

http://www.mywebsite.com/Product/LandingPage?trackingCode=fgdfg&productId=213456

然而,当我尝试我得到404错误时,所以路由可能不起作用。我添加了以下路线:

            routes.MapRoute(
           "Product_LandingPage",
           "Product/LandingPage",
           new { controller = "Product", action = "LandingPage" }, new {  trackingCode = UrlParameter.Optional ,productId = @"\d+" });

但我仍然得到404.这是我的产品控制器方法:

 [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Head)]
    public ActionResult LandingPage(string trackingCode, int productId)
    {
        //Some magic in here
    }

我有一种感觉,我在这里遗漏了一些明显的东西。关于我为什么要获得404的任何想法?

请注意,这可能是导致问题的其他一些代码,我只是想要理智地检查我在做什么来排除我的愚蠢错误。

1 个答案:

答案 0 :(得分:0)

使用Phil Haacks路由调试器我发现了这个问题,它是由另一条路由引起的,它位于route命令链的上方。重组对此进行了整理。感谢您的帮助。