我正在更改一个 ASP.NET、MVC、C# 应用程序,但一个routes.MapRoute
条目没有按预期工作。在我的 Global.asax.cs 文件中,我有以下两条路线 -
routes.MapRoute(
"MyRoute1", // Route name
"{controller}/{action}/{something}/{name}/{id}/{myParameterA}",
new { controller = "MyController", action = "MyActionA", category = "something", name = "name", id = "id", myParameterA = "myParameterA" });
routes.MapRoute(
"MyRoute2", // Route name
"{controller}/{action}/{something}/{name}/{id}/{myParameterB}",
new { controller = "MyController", action = "MyActionB", category = "something", name = "name", id = "id", myParameterB = UrlParameter.Optional } );
我的控制器中的代码如下所示 -
public ActionResult MyActionA(string something, string name, string id, string myParameterA)
{
//do cool stuff!
}
public ActionResult MyActionB(string something, string name, string id, string myParameterB)
{
//do awesome stuff!
}
当我调用时,即使参数在 URL 中MyActionB
,最终参数也会作为nullmyParameterB
进入控制器- (例如:/MyController/MyActionB/aThing/aName/123/456)。
我确实希望最后一个参数(在上面的示例中为“456”)是可选的。
MyActionA
工作正常。
任何建议,将不胜感激!此外,是否有关于如何routes.MapRoute
工作的良好参考?谢谢!