期間不通過我定義了以下路線在我RouteConfig.cs
友好的URL:ASP.NET MVC:參數URL路由
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "CreateChildRoute",
url: "Admin/MaterialPaymentRequestSbuItem/CreateChild/{parentId}",
defaults: new { controller = "MaterialPaymentRequestSbuItem", action = "CreateChild", parentId = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] {"ProjectManager.Controllers"}
);
然而,當我打電話:http://localhost:46813/Admin/MaterialPaymentRequestSbuItem/CreateChild/23
空值傳遞給控制器:
public ActionResult CreateChild(int? parentId){
.....
}
但調用http://localhost:46813/Admin/MaterialPaymentRequestSbuItem/CreateChild?parentId=32
作品沒有問題,並將它應該是參數。
P.S. Admin
是我的應用程序中定義的區域。 這裏是http://localhost:46813/Admin/MaterialPaymentRequestSbuItem/CreateChild?parentId=2
路線調試器的輸出:
你顯示的代碼工作正常。你是如何產生網址的? –
@StephenMuecke我手動測試應用程序上面生成的URL上面,但是有沒有其他測試方法?我嘗試了RedirectToAction和這樣的東西,它將以這種模式創建URL('.../CreateChild?parentId = 32'),例如:@Html.ActionLink(「Create New Item」,「CreateChild」,new {parentId = @ ViewBag.ParentID},null)' – VSB
它需要爲'@ Html.ActionLink(「Create New Item」,「CreateChild」,「MaterialPaymentRequestSbuItem」,new {parentId = @ ViewBag.ParentID},null) '這將工作正常,並生成'..../Admin/MaterialPaymentRequestSbuItem/CreateChild/23'。如果不是,那麼你還沒有向我們展示導致問題的其他事情。 –