2017-05-16 6 views
0

私は、タブIDとURLを持っている: C#のコントローラメソッドのURLからIDを抽出するにはどうすればよいですか?

http://localhost:19269/Member/Edit/35b46e40-b4b4-4e61-bcee-f5cc4f4fac94#tab_content2

私はURLから(私のコントローラで) "#のtab_content2" を抽出したいbeginformを提出

私は "Request.Url.AbsolutePath" を試してみましたが、私は唯一のhttp://localhost:19269/Member/Edit/35b46e40-b4b4-4e61-bcee-f5cc4f4fac94なくアンカーリンクにアクセスすることができます...事前に

おかげ

+0

"Request.Url.AbsolutePathは" HTTPのみを返しているので、それは動作しません:// localhostを:それが正しいかどう19269 /メンバー/編集/ 35b46e40-b4b4-4e61-bcee-f5cc4f4fac94 – Emmanuel

答えて

2

TL; DR:あなたは

することはできません

ブラウザはURIのハッシュ部分(#シンボルの後ろにあるもの)を決して送信しません。

From RFC 2396

URI参照が識別されたリソース上で検索動作を実行するために使用される場合、クロスハッチ(「#」)文字でURIから分離された任意のフラグメント識別子は、追加で構成されてい検索アクションが正常に完了した後にユーザエージェントによって解釈される参照情報。そのため、URIの一部ではありませんが、しばしばURIとともに使用されます。

断片部分を得るための唯一の方法は、それを取得した後、クエリ文字列パラメータとして、またはフォーム内のポストデータとして送信するためにJavaScriptを使用することです。 (あなたはjQueryのを使用している場合)

可能な回避策:

この特定の目的のために <input type="hidden">のIDとしてあなたのHTMLフォームのIDとして myForm、および myHiddenInputを想定すると
$("#myForm").submit(function() { 
    $("#myHiddenInput").val(window.location.hash); 
}); 

サーバー側から、このデータを取得できるように、隠し入力をモデルにマップする必要があります。

+0

は知ってはいけませんしかし、それは働いた!小さな修正: – Emmanuel

+0

$( "#myForm")。(function(){ $( "#myHiddenInput"); val(window.location.hash).toString(); }); – Emmanuel

関連する問題