路由重定向到错误的控制器

时间:2017-07-03 04:15:59

标签: c# asp.net-mvc routes

我将这些路线添加到RouteConfig.cs

routes.MapRoute(
    name: "NewPositiveRelease",
    url: "dispatch/{poNumber}/{article}",
    defaults: new { controller = "PositiveReleaseItem", action = "Create"});
routes.MapRoute(
    name: "Dispatch",
    url: "dispatch",
    defaults: new { Controller = "Dispatch", action = "Index"});

希望我可以去这个网址

locahost:3000/dispatch/4529707272/171112

Create中执行PositiveReleaseItemController操作。但是,当我导航到该网址时,我看到了错误:

  

在控制器'MVCQCPage.Controllers.DispatchController'上找不到公共操作方法'4529707272'。

有人可以帮我理解为什么这不起作用?

这是控制器:

using SharedLibrary.Models;
using System.Web.Mvc;

namespace MVCQCPage.Controllers
{
    public class PositiveReleaseItemController : Controller
    {
        // GET: PositiveReleaseItem
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Create(string poNumber, string article)
        {
            return View();
        }
        public ActionResult Insert(PositiveReleaseItem item)
        {
            return View();
        }
    }
}

我尝试改变给定路线的顺序,但结果相同。如果我能添加任何可能有用的细节,请告诉我。

由于

2 个答案:

答案 0 :(得分:1)

不应该是:

"PositiveReleaseItem/{poNumber}/{article}",

而不是:

"dispatch/{poNumber}/{article}",

答案 1 :(得分:1)

我能够通过简单地将新的路由映射放在Routeconfig.cs的顶部(最重要的是其他)来解决这个问题。

不确定为什么会这样,因为我的其他路线图都没有引用Dispatch控制器,所以它很抱怨它很奇怪。