我有两条路线:
routes.MapRoute(
"route1",
"{controller}/{action}/{param1}/{param2}/NotTest/{notParam}/{param4}",
new { controller = "Home", action = "Index" },
new[] { "Controllers" });
routes.MapRoute(
"route2",
"{controller}/{action}/{param1}/{param2}/Test/{param3}/{param4}",
new { controller = "Home", action = "Index" },
new[] { "Controllers" });
其中 NotTest 和 Test 都是 url 中的静态字符串,唯一区分这两个路由的是 notParam 和 param3 是不同的字符串。我可以使用actionlink很好地链接到route2,但是每当我尝试链接到route1时,我都会收到一个对我的 Controller 的get请求,其中包含一堆参数,而不是使用实际路由进行链接。使用 RouteLink,我什至没有得到 URL...
我还应该做些什么来区分这两条路线吗?
我的链接是这样的:
@Html.ActionLink("Example Data", "Action", "Controller", new {param1= Model.Data, param2, param3, notParam, param4}, new { id = "columnsID" })
最佳答案
您应该使用Html.RouteLink方法在这里:
@Html.RouteLink("Example Data",
"route1",
new
{
action = "Action",
controller = "Controller"
/*other route values*/
})
关于c# - ActionLink 不区分两个不同的相似路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20505413/