0

当我有一个采用一个参数的路由时,我遇到了 Html.ActionLink 问题。我在 global.asx 中有以下路由器:

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );
        routes.MapRoute(
            "materias",
            "{controller}/{action}/{id},{titulo_materia}.html",
            new { controller = "materias", action = "Index", id = "", titulo_materia = "" }  
        );

当我使用 ActionLink 传递两个参数时,一切正常。但是当我尝试使用第一条路线创建链接时,我最终会得到类似的结果:

http://meusite.com/controller-name/[参数],.html

编辑:

这是我遇到问题的操作链接:

<span class="editar"><%=Html.ActionLink("Editar", "Edit", "Users", new { id = this.Model.login }, null)%></span>

此链接位于另一个用于管理用户数据的页面上。

4

2 回答 2

1

首先,您应该将最通用的路线放在底部。

然后,如何做类似的事情:

    routes.MapRoute(
        "materias",
        "{materias}/{action}/{id},{titulo_materia}.html",
        new { controller = "materias", action = "Index", id = "", titulo_materia = "" }  
    );

    routes.MapRoute(
        "Default",                                              // Route name
        "{controller}/{action}/{id}",                           // URL with parameters
        new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
    );

这样,materias 路由只适用于 materias 控制器。(未测试)

编辑: htmm .. 尝试使用马丁的例子和一个小的补充:

Html.RouteLink("Link Title", new { controller = "Controller", Action= "Action",id = this.Model.login });
于 2009-08-14T03:16:50.067 回答
0

采用:

Html.RouteLink("Link Title", new { controller = "Controller", Action= "Action" });
于 2009-08-14T02:28:06.640 回答