2

私はかなり基本的な ASP.NET MVC (1) ルーティング クエリを取得しましたが、今では答えを見つけることができませんでした。

3 つのパラメーターを持つアクション メソッドを呼び出したいのですが、複数のパラメーターを指定して呼び出すと 404 が発生します。

ルートは次のようになります (デフォルトのルート以外はすべて削除しました):

routes.MapRoute(
   "Test",
   "{id}/{page}/{lineend}",
   new { controller = "Basic", action = "Test" },
   new { id = @"\d+", page = @"\d+" }
);

メソッドは次のようになります。

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Test(int? id, int? page, string lineend)
{
    // some code here
    return new ViewResult();
}

これが起こることです:

http://localhost:55462/Basic/Test/

作品

http://localhost:55462/Basic/Test/1

作品

http://localhost:55462/Basic/Test/1/2

404を与える

http://localhost:55462/Basic/Test/1/2/3

404を与える

制約を削除するか、メソッド シグネチャを (int, int, string) に変更しても、同じ効果があります。1 番目と 2 番目のケースでは、アプリケーションは null パラメータについて不平を言い、他のケースでは 404 が発生します。

この問題はかなり基本的なものでなければならないことはわかっていますが、わかりません。

ご協力いただきありがとうございます!

4

2 に答える 2

0

次のようになります。

routes.MapRoute(
   "Test",
   "{id}/{page}/{*lineend}",
   new { controller = "Basic", action = "Test" },
   new { id = @"\d+", page = @"\d+" }
);

キャッチオールパラメータです。実際には、「/」を使用して文字列を分割する必要があります

于 2013-05-03T16:53:47.203 に答える