0

ASP.NET MVC アプリケーションを開発しました。EmployeeController という名前のコントローラーがあり、GetEmployeeByName というメソッドを取得しました。GetEmployeeByName() は、文字列型の名前をパラメーターとして受け取ります。

したがって、このようなリクエストを送信すると、データが返されます: someDomain:9999/Employee/GetEmployeeByName/Roger Federer

しかし、名前に「&」(あなたと私) が含まれていると、サーバーからの応答として「400 Bad Request」が返されます。

someDomain:9999/Employee/GetEmployeeByName/you%20&%20me

エンコードしても返信が返ってこない someDomain:9999/Employee/GetEmployeeByName/you%20&%20me

そのような (特殊文字を含むデータ) データをエンコードする正しい方法は何ですか?

4

1 に答える 1

1

そのような (特殊文字を含むデータ) データをエンコードする正しい方法は何ですか?

正しい方法は、クエリ文字列パラメーターを使用し、それらを uri 部分の一部として配置しないことです。following blog postScott Hanslemanの を読んでください。私は彼の結論だけを引用します:

リクエスト パスでクレイジーなものを取得するためのすべての努力の後、単純に値をクエリ文字列の一部として保持する方が簡単で、クリーンで、より柔軟で、より柔軟であることに言及する価値があります (この投稿の最初の WAY を覚えていますか?)。安全。

ブログの投稿でわかるように、それを機能させて IIS の処理を​​回避するハックな方法がいくつかあります。この名前をクエリ文字列に入れるだけです。

于 2013-01-30T10:59:16.287 に答える