0

ユーザーが ID に基づいてブラウザーに URL を入力したときに、ユーザーをリダイレクトしたいと考えています。たとえば、ユーザーは次のように入力します。

http://localhost:50431/10213

そして、それらは次の場所にリダイレクトされます:

http://localhost:50431/home/job/10213

デフォルトルート:

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{jobno}",
                defaults: new { controller = "Home", action = "Job", jobno = UrlParameter.Optional }
            );

どうすればこれを達成できますか?

4

2 に答える 2

1

次のようなことを試すことができます:

routes.MapRoute(
  name: "Job Number",
  url: "{jobno}",
  defaults: new { controller = "Home", action = "Job" },
  new { jobno = @"[0-9]*" }      
);

そして、他のルートの上に置きます。追加されたパラメーターは、ルートが のような URL をキャッチしないようにするためhttp://localhost:50431/foobarのものですが、数字を含むものだけです。

現時点ではこれをテストする方法がないため、少し調整する必要があるかもしれないことに注意してください。

于 2013-02-20T09:48:35.713 に答える
0

これが最善の解決策だと思います:

routes.MapRoute(
  name: "Job Number",
  url: "{jobno}",
  defaults: new { controller = "Home", action = "Job", .jobno = UrlParameter.Optional },
  constraints: new { jobno = @"[0-9]*" }      
);

私はこれをテストしましたが、正常に動作します。コメントでの彼の返信は適切に機能しませんでした。

于 2013-10-26T17:47:17.733 に答える