0

ASP .NET MVC3 で以下のようなルートを登録するつもりでした:

routes.MapRoute(
            "SearchRoute", // Route name
            "Report/Search/{code}/{quarter}/{year}/{receivedBegin}/{receivedEnd}/{transactionBegin}/{transactionEnd}/{page}", // URL with parameters
            new {
                controller = "Report",
                action = "Search",
                page = UrlParameter.Optional } // Parameter defaults
        );

そのルートは、Report という名前のコントローラーでこの関数にリンクします。

public ActionResult Search(string code, int? quarter, int? year, 
            DateTime? receivedBegin, DateTime? receivedEnd,
            DateTime? transactionBegin, DateTime? transactionEnd, int? page=1)

その関数への Html.ActionLink によって生成されたリンクが次のように生成されることを期待していました。

Html.ActionLink を使用してリンクを生成すると、次のようなリンクが生成されます。

Report/Search?code=100&quarter=2&year=2012&receivedBegin=04-01-2012&receivedEnd=04-30-2012&transactionBegin=04-01-2012&transactionEnd=04-30-2012

期待どおりの結果を生成するにはどうすればよいですか? ありがとうございました。

アップデート

これは、リンクを作成するために使用するコードです。

@Html.ActionLink("First", "Search", new { 
    code = currentCode, 
    quarter = currentQuarter, 
    year = currentYear, 
    receivedBegin = currentReceivedBegin, 
    receivedEnd = currentReceivedEnd, 
    transactionBegin = currentTransactionBegin, 
    transactionEnd = currentTransactionEnd }, null).
4

1 に答える 1

2

いいえ、これは私が登録した最初のルートではありません。最初にこれを登録する必要がありますか?

はい。RegisterRoutesメソッドのルールは、global.asax具体性の順に上から下に移動する必要があるため、このルートは間違いなく上 (または少なくとも近く) にある必要があります。

デフォルト ルートは常に最後のルートにする必要があります。

于 2012-04-27T08:09:43.990 に答える