「user?1」など、エンコードが必要な文字を含めることができるユーザー名に基づく文字列 ID パラメーターを使用するアクションがあります。
ActionLink()
リンクを生成するために使用し、エンコードせずに文字列を渡すと、次のようなリンクが生成されます: http:\\localhost\controller\action\user?1
、アクションは ID として "user" を渡されます。
にUrlEncode()
渡す前に文字列を渡すとActionLink
、生成されるリンクは次のhttp:\\localhost\controller\action\user%253f1
ようになります。ActionLink が「%」文字をエンコードするためです。これは見た目が悪いだけでなく、リンクをたどると HTTP エラー 400 - Bad Request が生成されますが、その原因はまだ突き止めていません。
次のような URL を生成する方法はありますhttp:\\localhost\controller\action\user%3f1
か?