0

私のプロジェクトのルート ページには、さまざまな国のサービスがすべて 1 つのページにまとめられています。カテゴリは別エリアの View フォルダ内の「目次」ページで、特定のサービスは「詳細」ビューです。ユーザーが (この場合は中国) エリアのカテゴリを飛び越えて、その特定のサービスの詳細にジャンプできるようにしたいと考えています。

私はこれを持っています:

<%=Html.ActionLink("More Info", "Details", "ParticularChinaServiceControllerName", new { area = "China" }, new { id = p.ID })%>

ただし、フレームワークは ID を取得しません。

ルートは次のように登録されます: public override string AreaName { get { return "China"; } }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "China_default",
            "China/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional }
        );
    }
}

誰かがこれを正しく機能させる方法を教えてもらえますか?

4

1 に答える 1

1

コントローラー名を「ParticularChinaServiceController」から「ParticularChinaService」に変更し、問題が解決するかどうかを確認します。

待って、最後の引数:

new { id = p.Id }

...実際には htmlAttributes 引数であり、その id を html で生成されたハイパーリンクの属性として適用します。前の引数を次のように変更します。

new { area = "China", id = p.Id }

そして、最後の引数を削除します (特定のクライアント側の属性を適用する必要がある場合を除く)。

于 2010-07-04T17:46:20.777 に答える