14

ashx またはハンドラーを使用する利点は何ですか? また、MVC を使用する場合、それらが必要ですか (なぜ必要でないのですか)?

フレームワークは重要ですか (2.0+)?

なぜハンドラーを使用する必要があるのですか? 最近、画像の取得に使用するように勧められましたが、理由がわかりません。

お時間をいただきありがとうございます。

編集 - ハンドラーの方が速いですか?

4

4 に答える 4

17

ほんの数例:

  1. 動的画像生成: 画像データを返す ASHX ハンドラーを作成し、その URL をタグで使用することにより、データ駆動型の画像を返すハンドラーを作成できます。例えば<img alt="user's custom icon" src="Icon.ashx?username=bob"></img>

  2. REST ベースの XML または JSON データをクライアントの AJAX コードに返す。

  3. カスタム HTML : ASP.NET Web フォームまたは MVC フレームワークの制限が厳しすぎる場合に、ページの完全なカスタム HTML を返します。

これは1.0から利用できると思います

于 2009-03-06T17:36:18.187 に答える
3

非 MVC プロジェクトでのハンドラーの目的は、HTML の外部で、何らかのタイプのエンコードされた応答を提供することです。通常、ハンドラーは XML (rss、RESTful など)、jQuery やその他の Javascript の JSON、またはファイル バイナリ ダウンロードなどの純粋なデータを返します。「デマンドオンリー」アプローチで大きなバイナリまたは要件を遅延読み込みする方法として、クライアントで実行される特別な JavaScript を返すためにハンドラーを使用しました。多かれ少なかれ、ハンドラーは「HTML 以外のもの」を返すために使用されます。

MVC では、ハンドラーから離れて、コントローラーを利用して好きなデータを返します。したがって、次のような方法で:

mywebsite.com/restapi/content/56223

RestfulContentController には、View() を返すのではなく、純粋な XML または JSON を返す Index() のメソッドがあります。

public class JSONContentController : Controller
{
  public JsonResult Index(int ContentID)
  {
    // get Content() by ContentID
    //

    // return a JSON version
    return Content().SerializeToJSON();
  }
}
于 2009-03-06T17:34:26.473 に答える
2

これらは、IIS にアクセスできない環境で作業しているが、css、画像、JavaScript などのファイルのキャッシュを最適化するために、遠い将来の有効期限応答ヘッダーなどを変更したい場合に非常に役立ちます。

画像の場合、その場で最適化のようなことを実行できるため、image.jpg.ashx?w=180&quality=70 のような画像をリクエストし、ハンドラーを使用して、クエリ文字列で渡された設定に基づいて画像を配信できます。

于 2009-03-06T17:30:43.033 に答える