2011-01-03 11 views
0

私が使用しています、次のルートマップにASP.NET MVCのルーティングの問題:許可する方法「」IDの

routes.MapRoute(
    "RenderAssociatedForm", 
    "DoAction/{nodeLevelId}/{nodeSystemId}", 
    new { 
    controller = "FrontEnd", 
    action = "RenderAssociatedForm",      
}); 

は今nodeLevelIdzs\bbalようなものをすることができます。 '\'をエスケープする必要があることを知っているので、 'zs%5cbbal'を使用しています。しかし、まだ次のURLはこのルートにマッピングされていません。

//localhost/DoAction/zs%5cbbal/5

私は、エスケープ文字なしで、簡単なイドをしようとすると、それが適切にマッピングします。誰が私が間違っているのか教えていただけますか?

+0

解決策はありませんか? : – Bipul

+0

新年で、ほとんどの人は家族と一緒に過ごしています –

答えて

1

次の2つのルートでそれを試みることができます。最初のルートはあなたが示したもので、の後にの場合は"DoAction/{nodeLevelId}"となります。

0

あなたはワイルドカードを使用して自分で値を解析する必要があります:

routes.MapRoute(
     "RenderAssociatedForm", 
     "DoAction/{*nodeLevelId}/{nodeSystemId}", 
     new 
     { 
      controller = "FrontEnd", 
      action = "RenderAssociatedForm",      
     }); 
+0

残念ですが、「キャッチオールパラメータはルートURLの最後の部分としてしか表示されません」というエラーが表示されます – Bipul

+0

@Bipul、あなたのルートを並べ替える。URLにスラッシュを付ける方法は1つだけあり、ダッシュで置き換えることもできますか? – jfar

-2

@jfarがおそらく最良の解決策です。 \をa - や$などのURLに置き換えてください。

関連する問題