2017-03-28 4 views
0

URLのMVCプロジェクトに問題があります。私は、次のコードを持っているルートの設定で MVCでのURLの問題C#

routes.MapRoute(
      name: "Test", 
      url: "{controller}/{action}/{id}/{selected}/{category}/{engineId}‌​", 
      defaults: new { controller = "Product", action = "SubCategories"} 
     ); 

パラメータカテゴリには、選択したカテゴリの名前が含まれています。データベースでは、私は "Packet/Set"という名前のカテゴリを持っています。私のウェブサイトで、私はこのカテゴリーを選択して、URL内の場合

SubCategories/92/Bertone-FREECLIMBER-2.0/Packet/Set /33720‌%E2%80%8B. 

このカテゴリ名が表示されます私は

Server Error in '/' Application. 
The resource cannot be found. 

エラーが発生しました。 カテゴリ名は「/」文字が含まれていない場合は、evrythingが正常に動作します:

SubCategories/94/Bertone-FREECLIMBER-2.0/Air%20filter/33720%E2%80%8C%E2%80%8B 

あなたはどのように私はこの問題を解決すべき助言てもらえますか?

+0

/inルート名をエスケープする必要があります。http://stackoverflow.com/questions/30972578/route-parameter-with-slash-in-url – Anil

答えて

0

URLのすべてのスラッシュを%2Fとしてエンコードする必要があります。 JavascriptのencodeURIComponent()関数を使用できます。 MVCは自動的にURLパラメータとアクションパラメータをデコードしますので、追加の労力をかけずにコントローラで正しく値を取得できるはずです。 詳細はこちらをご覧ください:https://www.w3schools.com/jsref/jsref_encodeuricomponent.asp