c# - ActionLink 不区分两个不同的相似路由

标签 c# asp.net-mvc-3 asp.net-mvc-4 razor routes

我有两条路线:

    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/

相关文章:

c# - 使用 aspnet 成员(member)提供程序进行用户管理

c# - 错误帮助 : Out Of Bounds

c# - EF 中的可序列化类和动态代理 - 怎么样?

javascript - 面临模型下拉列表设置值的问题

c# - 根据条件显示 DropdownList 的最佳方法

c# - 使用基类中的方法确定子类的程序集

c# - 完成特定任务后清除每件事

c# - 为什么处理排序的数组比处理未排序的数组慢?

asp.net-mvc - 在mvc中使用ajax调用重定向到另一个 View

c# - 使用 MVC 4 的自定义页面访问安全性