Backboneを使用するWebフロントエンドがREST APIを使用しているASP.NET MVCプロジェクトがあります。機能の作品の一つは、現在、このようなURLを使用するフリーテキスト検索、次のとおりです。REST APIでフリーテキスト検索を許可するにはどうすればよいですか?
http://server/Search/{search-query}/{page-number}/{page-count}
これは(それに応じてマッピングされたルートで)このような検索コントローラーを指す:
public JsonResult Search(string query, int page, int pageSize)
{
// Do search
}
複雑な文字(例:test
、hello+world
)を使用した単純なクエリでは問題ありませんが、*
,&
などの特殊文字のように見えますが、これはかなり簡単に破損し、検索クエリとして
A potentially dangerous Request.Path value was detected from the clientには、ユーザーが入力したテキストボックスを介しては、これは無効な文字が含まれている検索クエリに対処するより弾力的であることが必要です。
encodeURIComponent
を使用して検索文字列をエンコードしようとしましたが、問題のある文字がすべてエンコードされていないようです。
REST API経由のフリーテキスト検索を許可する方法はありますか?どんな考えやアドバイスも感謝します。ありがとう。
うん、これは私がやってしまったものを最終的にあります。 – Mun