質問
ashxまたはハンドラーを使用する利点は何ですか?また、MVCを使用する場合(および使用しない場合)は必要ですか?
フレームワークは重要ですか(2.0 +)?
ハンドラーを使用する理由は何ですか?最近、画像の取得に使用することが推奨されましたが、その理由はわかりません。
お時間をいただきありがとうございます。
編集-ハンドラーは高速ですか?
解決
ほんの数例:
-
動的画像生成:画像データを返すASHXハンドラーを作成し、タグでそのURLを使用することで、データ駆動型画像を返すハンドラーを作成できます。例えば
<img alt="user's custom icon" src="Icon.ashx?username=bob"></img>
-
RESTベースのXMLまたはJSONデータをクライアント上のAJAXコードに返す。
- カスタムHTML :ASP.NET WebフォームまたはMVCフレームワークの制限が厳しすぎる場合、ページの完全にカスタムのHTMLを返します
これは1.0から利用可能になったと思います
他のヒント
非MVCプロジェクトのハンドラーの目的は、HTMLの外部で何らかのタイプのエンコードされた応答を提供することです。通常、ハンドラーはXML(rss、RESTfulなど)、jQueryまたはその他のJavascriptのJSON、またはファイルバイナリダウンロードなどの純粋なデータを返す場合があります。 <!> quot; demand-only <!> quot;の大きなバイナリまたは要件を遅延ロードする方法として、クライアントで実行される特別なjavascriptを返すためにハンドラーを使用しました。アプローチ。多かれ少なかれ、ハンドラを使用して<!> quot; HTML以外のすべての<!> quot;を返します。
MVCでは、ハンドラーから離れて、コントローラーを使用して任意のデータを返します。したがって、次のようなメソッドで:
mywebsite.com/restapi/content/56223
RestfulContentControllerには、View()を返さないIndex()のメソッドがありますが、代わりに純粋なXMLまたはJSONがあります。
public class JSONContentController : Controller
{
public JsonResult Index(int ContentID)
{
// get Content() by ContentID
//
// return a JSON version
return Content().SerializeToJSON();
}
}
これらは、IISにアクセスできない環境で作業しているが、css、画像、JavaScriptなどのファイルのキャッシュを最適化するために、将来の有効期限応答ヘッダーなどを変更する場合に非常に役立ちます
画像の場合、オンザフライ最適化などの処理を行うことができるため、image.jpg.ashx?w = 180 <!> amp; quality = 70のような画像をリクエストし、ハンドラーを使用して設定に基づいて画像を配信できますクエリ文字列で渡されます
aspxは、IRequireSessionStateを実装するページを継承します。したがって、Ajax経由で呼び出す場合、asp.netはさらに処理する前にセッションをロックする必要があります。
ashxファイルの場合、ステートレスです。 IRequireSessionStateから継承して状態を管理しない限り。
すべてのAjax呼び出しにashxを使用し、純粋にasp.netページにaspxを使用します。