1

ビューの 1 つにこの ActionLink があります

Html.ActionLink(pop.PopName, "ShowAllEncounters", "Encounter", new {popId = pop.populationID })

それが正しいルートにつながると思っています...
しかし、代わりにこのルートに行きます...

http://localhost:19283/Population/ShowAllEncounters?Length=9

ルートは

http://localhost:19283/Encounter/ShowAllEncounters?Length=9

global.asax ファイルを調べたところ、すべてが正常に見えました...デフォルトの開始ページを設定する以外は、デフォルトのルートを変更しませんでした...

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

これは私が期待したものです...これは、私が持っていたMVC3ルートに似ています。ルートで何かおかしなことをしていますか? ここで何が欠けていますか?

4

2 に答える 2

1

間違ったメソッドのオーバーロードを呼び出しているようです:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    Object routeValues,
    Object htmlAttributes
)

http://msdn.microsoft.com/en-us/library/dd492124.aspx

代わりに、このオーバーロードを呼び出してみてください:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    Object routeValues,
    Object htmlAttributes
)

http://msdn.microsoft.com/en-us/library/dd504972.aspx


適切なオーバーロードを呼び出すには、次のようなものを使用します。

Html.ActionLink(pop.PopName,
                "ShowAllEncounters",
                "Encounter",
                null,
                new {popId = pop.populationID })
于 2012-05-22T17:32:14.303 に答える
0

あなたのコード

Html.ActionLink(pop.PopName, "ShowAllEncounters", "Encounter", new {popId = pop.populationID })

する必要があります

Html.ActionLink(pop.PopName, "ShowAllEncounters", new {controller="Encounter"}, new {popId = pop.populationID })
于 2012-08-10T17:45:37.823 に答える