Frage

Was sind die Vorteile der Verwendung eines Aschens oder eines Handlers? Benötige ich sie auch, wenn ich MVC verwende (und warum nicht)?

Ist das Rahmen wichtig (2.0+)?

Warum sollte ich einen Handler benutzen wollen? Ich wurde kürzlich empfohlen, eines zum Abrufen eines Bildes zu verwenden, aber ich weiß nicht warum.

Vielen Dank für Ihre Zeit.

Bearbeiten - Ist ein Handler schneller?

War es hilfreich?

Lösung

Nur ein paar Beispiele:

  1. Dynamische Bildgenerierung: Sie können Handler schreiben, die datengesteuerte Bilder zurückgeben, indem Sie einen ASHX -Handler erstellen, der Bilddaten zurückgibt und diese URL in Ihren Tags verwendet. z.B <img alt="user's custom icon" src="Icon.ashx?username=bob"></img>

  2. Rückgabe von REST-basierten XML- oder JSON-Daten zurückgeben zum Ajax -Code im Client.

  3. Benutzerdefinierte HTML: Ret Gotal benutzerdefinierte HTML für eine Seite zurück, wenn die ASP.NET -Webformulare oder das MVC -Framework zu restriktiv sind

Ich glaube, das ist seit 1.0 verfügbar

Andere Tipps

Der Zweck von Handlern in Nicht-MVC-Projekten besteht darin, eine Art codierter Reaktion außerhalb von HTML zu liefern. Normalerweise gab ein Handler XML (RSS, RESTful usw.), JSON für JQuery oder andere JavaScript zurück oder manchmal nur reine Daten wie Binärdownloads von Dateien. Ich habe Handler verwendet, um sogar spezielle JavaScript für den Kunden zu verschaffen, um große Binär- oder Anforderungen für einen "nur Nachfragedach" -Ansatz faul zu laden. Mehr oder weniger würde ein Handler verwendet werden, um "alles andere als HTML" zurückzugeben.

In MVC würden Sie sich von Handlern entfernen und den Controller nutzen, um alle von Ihnen gefallenen Daten zurückzugeben. Also in der Methode wie:

mywebsite.com/restapi/content/56223

Sie hätten restfulContentController eine Methode für Index (), die keine Ansicht (), sondern reine XML oder JSON zurückgeben würde.

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

    // return a JSON version
    return Content().SerializeToJSON();
  }
}

Sie sind sehr nützlich, wenn Sie in einer Umgebung arbeiten, in der Sie keinen Zugriff auf IIS haben, aber Dinge wie Ablauf-Reaktionsüberschreitungen für Fernkünste ändern möchten, um das Caching für Dateien wie CSS, Bilder, JavaScript zu optimieren

Für Bilder können Sie Dinge wie bei der Fliegenoptimierung tun, damit Sie Bilder wie Image.jpg.ashx anfordern können?

ASPX erbt eine Seite, die das iRequiresSessionState implementiert. Wenn Sie es also über AJAX anrufen, muss ASP.NET die Sitzung vor einer weiteren Verarbeitung sperren.

Für die AshX -Datei ist es staatenlos. Es sei denn, Sie erben es von irequiresSessionState, um den Staat zu verwalten.

Verwenden Sie ASHX für alle AJAX -Aufrufe und verwenden Sie ASPX für die rein ASP.NET -Seite.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top