我将这些路线添加到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();
}
}
}
我尝试改变给定路线的顺序,但结果相同。如果我能添加任何可能有用的细节,请告诉我。
由于
答案 0 :(得分:1)
不应该是:
"PositiveReleaseItem/{poNumber}/{article}",
而不是:
"dispatch/{poNumber}/{article}",
答案 1 :(得分:1)
我能够通过简单地将新的路由映射放在Routeconfig.cs
的顶部(最重要的是其他)来解决这个问题。
不确定为什么会这样,因为我的其他路线图都没有引用Dispatch
控制器,所以它很抱怨它很奇怪。