Domanda

Quali sono i vantaggi dell'utilizzo di un ashx o di un gestore?Inoltre, ne ho bisogno se utilizzo MVC (e perché no)?

Il framework è importante (2.0+)?

Perché dovrei voler utilizzare un gestore?Recentemente mi è stato consigliato di usarne uno per recuperare un'immagine, ma non so perché.

Grazie per il tuo tempo.

Modifica: un gestore è più veloce?

È stato utile?

Soluzione

Solo alcuni esempi:

  1. Generazione di immagini dinamiche : puoi scrivere gestori che restituiscono immagini guidate dai dati creando un gestore ASHX che restituisca dati di immagini e quindi utilizzando tale URL nei tag. per esempio. <img alt="user's custom icon" src="Icon.ashx?username=bob"></img>

  2. Restituzione di dati XML o JSON basati su REST al codice AJAX sul client.

  3. HTML personalizzato : restituisce HTML totalmente personalizzato per una pagina quando i moduli Web ASP.NET o il framework MVC sono troppo restrittivi

Credo che questo sia disponibile dalla 1.0

Altri suggerimenti

Lo scopo dei gestori nei progetti non MVC è fornire un qualche tipo di risposta codificata, al di fuori dell'HTML.In genere, un gestore restituisce XML (rss, RESTful, ecc.), JSON per jQuery o altro Javascript o talvolta solo dati puri come download di file binari.Ho utilizzato gestori anche per restituire javascript speciali da eseguire sul client, come un modo per caricare binari di grandi dimensioni o requisiti con un approccio "solo su richiesta".Più o meno, un gestore verrebbe utilizzato per restituire "tutto tranne HTML".

In MVC, ti allontaneresti dai gestori e utilizzeresti il ​​Controller per restituire tutti i dati che desideri.Quindi, nel metodo come:

mywebsite.com/restapi/content/56223

RestfulContentController avrebbe un metodo per Index(), che NON restituirebbe un View(), ma invece puro XML o JSON.

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

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

Sono molto utili se si lavora in un ambiente in cui non si ha accesso a IIS ma si desidera modificare elementi come le intestazioni di risposta di scadenza in futuro per ottimizzare la memorizzazione nella cache di file come CSS, immagini, JavaScript

Per le immagini puoi fare cose come l'ottimizzazione al volo in modo da poter richiedere immagini come image.jpg.ashx? w = 180 & amp; quality = 70 e quindi usare il gestore per consegnare l'immagine in base alle impostazioni passato nella stringa di query

aspx eredita la pagina che implementa IRequireSessionState. Quindi, se lo chiami tramite Ajax, asp.net deve bloccare la sessione prima di continuare l'elaborazione.

Per il file ashx è stateless. A meno che non lo erediti da IRequireSessionState per gestire lo stato.

Usa ashx per tutte le chiamate Ajax e usa aspx per la pagina puramente asp.net.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top