0

1 つのパラメーターを使用するルートがある場合、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 = "" }  
        );

2 つのパラメーターを渡す 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
    );

このように、マテリア ルートはマテリア コントローラーに対してのみ機能します。(未検証)

EDIT: 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 に答える