ASP.NET MVC3/Razor。MVC3 URLエンコーディング?
@Html.ActionLink(product.Title, "Detail", "Products", new { id = product.ProductID }, null)
MVC3エンジンは私の商品リンクを作成します。
は、私はアクションリンクを作成するときに、このように、と言うことがわかりました。例:http://myhost/{ActionUrl}/PRODID
ただし、自分のプロダクトIDに特殊文字が含まれていると、URLエンコードされません。
http://myhost/{ActionUrl}/PROD/ID
もちろん、これによってルーティングが中断されます。 私の質問は次のとおりです:
- 私はそれが自動的に値をエンコードすることを期待する必要がありますか?それを設定する方法はありますか?
- そうでなければ、それらをエンコードしてデコードする最もクリーンな方法は何ですか?私は本当にすべてのコントローラでそれをしたくありません。
ありがとう!
実現するまでにはしばらく時間がかかりましたが、あなたの答えはまったく正しいです。特定の文字は予約されたキーワードに似ており、あなたはそれについて何もできません。他の人にとっては奇妙なことやキャッチオールルートを使うこともできますが、特殊文字の中にはそのようにとどまるものがあります(正規表現で書き直しをしない限り)。 – Alpha
それでは、クエリ文字列として使うコードは何ですか? –