ハッシュ値を実装する必要があります。つまり、Urlは次のようになります。
/ home/index /#create
このためにルートを追加しました:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/#{detail}", // URL with parameters
new { controller = "Login", action = "LogIn", detail =""} // Parameter defaults
);
アクセス時/home/index/#create
、デフォルトルートにリダイレクトされます。
これをどのように行うことができますか?
サーバー上の#
シンボルの後の値をフェッチすることはできません。単にこの値がサーバーに送信されないからです。クライアント側のjavascriptのみがこれにアクセスできるため、ハッシュを使用してルートを定義しても意味がありません。
前述のように、ルーティングを使用してこれを行う方法はありません。唯一可能な解決策は、コントローラーのアクションでリダイレクトするときにURLに#フラグメントを追加することです。例えば。
return Redirect(Url.Action("Index", "Home") + "#create");
ブラウザーがURLを要求すると、ハッシュの後にサーバーに何も送信されません。このルートを使用すると、ハッシュ値を含むURLをgenerateルーティングできますが、ユーザーがそのようなURLに移動するときにserver-sideを実行する方法はありません。それはまさにウェブの仕組みです...