0

これは未解決の問題です。URL のクエリ文字列についてどう思いますか? ASP.NET MVC でサイトを作成している間、特に検索フォームでクエリ文字列を最初に使用する必要があるときにのみ、きれいな URL を考えて作成することに多くの時間を費やします。

たとえば、私は最近、半ダースのテキスト フィールドと 2 つまたは 3 つのチェックボックスと選択項目のリストを備えたかなり単純な検索フォームを作成しました。これにより、送信時に以下のクエリ文字列が生成されました

countrylcid=2057&State=England&StateId=46&Where=&DateFrom=&DateTo=&Tags=&Keywords=&Types
=1&Types=0&Types=2&Types=3&Types=4&Types=5&Costs=0.0-9.99&Costs=10.00-29.99&Costs=30.00-59.99&Costs=60.00-10000.00

美しい 私はあなたが同意すると思います。フィールドの半分には情報がなく、リスト入力は非常に冗長です。

少し前に、次のような URL を生成するページング用の簡単なソリューションを実装しました。

www.yourdomain.com/browse/filter-on/page-1/perpage-50/

これは、キャッチオール ルートを使用して、フィルター オン部分の後に本質的に置換クエリ文字列を取得しました。非常にうまく機能しますが、フォームの送信時に故障します。

人々が思いついた他の解決策を知りたいですか? クリーンな URL に関する記事はたくさんありますが、MVC がカバーしている基本的な安らかな URL を作成する asp.net 開発者を対象としています。私はモデルバインディングに飛び込んで、それらの線に沿って適切なソリューションを作成することを半分検討しています。上記の規則を使用すると、大きなクエリ文字列は次のように書き直すことができます。

filter-on/countrylcid-2057/state-England/stateId-46/types-{1,0,2,3,4,5}/costs-{0.0-9.99,10.00-29.99,30.00-59.99,60.00-10000.00}/

これは努力する価値がありますか?

ありがとう、

4

3 に答える 3

2

他の人が言ったことに加えて、URL はセマンティックな階層を意味します。今日の真実であろうとなかろうと、祖先はディレクトリであり、人々は今でもディレクトリをそのように考えています。そのため、コントローラー/アクション/ID があります。同様に、クエリ文字列はオプションまたはクエリを意味します。

個人的には、URL の背後にインタープリターがあるかどうかわからない場合は、書き換えられた URL が最適だと思います。生成された HTML ファイルにすぎないのでしょうか?

したがって、どのように選択するにせよ (検索フォームでクライアントに負担がかかります。価値があるというよりは面倒なことだと思います)、私は階層のためにそれを行うことをサポートします。

例 /検索/国/州/市

しかし、価格と型に取り掛かるか、そうでなければ値の型 (たとえば、/prices=50.00/ またはさらに悪い場合は配列) を "ディレクトリ" の前に付ける必要があるとしたら、それはあなたが私を失った場所です。

実際、すべての要素が入力されている場合は、クエリ文字列を取得し、「&」を「/」に置き換えて、配列を 1 つのフィールドに結合するだけです。

いずれにしても JavaScript を作成する場合は、フォーム要素をループして次のようにします。

  1. 空のものを削除し、「&price_low=&price_high=&」のようなものからクエリ文字列をクリーンアップします。
  2. 複数の値を配列構造に結合する

ただし、クエリ文字列として送信します。

ジェームズ

于 2009-08-07T13:13:41.183 に答える
2

私の個人的な見解では、ユーザーが URL をブックマークしたり、他の人に URL を渡したりする可能性が高い場合は、適切でクリーンな「使いやすい」URL を使用することをお勧めします。審美的にははるかに優れています。簡単なページ付けと順序付けのために、書き換えられた URL は良い考えです。

ただし、一時的な動的フィールド (検索など) が多数あるページの場合は、控えめなクエリ文字列で問題ないと思います。将来まったく同じ URL を指定した場合、コンテンツが大幅に変更される可能性が高いページについても同様です。このような場合、クエリ文字列を含む URL は適切であり、少なくともページが動的であることを注意深いユーザーに示すため、おそらくより望ましいものです。ただし、これらの場合は、フォーム POST 変数を使用する方がよい場合があります。これにより、訪問者が値を「いじる」誘惑にかられることはありません。

于 2009-08-07T12:15:20.030 に答える
0

とにかく投稿時に FormsCollection で使用できるさまざまなフィールドの値はありませんか?

于 2009-08-07T12:10:59.110 に答える