2009-04-28 11 views
3

En webforms, nous ferions somthing comme celui-ci à mettre en place un virage pour générer une image dyanmic:asp.net mvc demandes multi-paramètres pour les images dynamiques?

<img src="/barchart.aspx?width=1024&height=768&chartId=50" > 

Alors bien sûr nous écrire du code sur la page .aspx pour rendre l'image en utilisant les paramètres et écrire retour dans la réponse.

Je ne suis pas vraiment sûr de savoir comment configurer/gérer une telle demande avec MVC et comment nous l'activerions (en termes généraux) à partir d'une vue.

tout pointeur ou aide à l'avance est grandement apprécié.

Répondre

5

Si je comprends bien la situation:

public class ImageGeneratorController : Controller { 
    public ActionResult BarChart(int width, int height, int chartId) { 
     // ASP.NET MVC will map the request parameters to method arguments 
    } 
} 

Pour créer un lien:

Url.Action("BarChart", "ImageGenerator", new { 
    width = 1024, 
    height = 768, 
    chartId = 50 
}); 

Affichera:

/ImageGenerator/BarChart?width=1024&height=768&chartId=50 
+0

ce que je voulais. À quoi l'URL ressemble-t-elle? – MikeJ

+0

/BarChart/1024/768/50? – MikeJ

+0

J'ai mis à jour ma réponse pour afficher la génération d'URL et le résultat –

2

Vous n'avez pas besoin en vue d'atteindre cet objectif . Vous pouvez avoir une action qui retourne une FileResult et écrire l'image à la réponse comme ceci:

public FileResult BarChart(int width, int height, int chartID) { 
    //create the chart 
    return new FileContentResult(byte[] fileContents, string contentType); 
}

Et le code html:

<img src="/yourController/BarChart/1024/768/50"> 
+1

Cette URL spécifique ne nécessiterait-elle pas une route nommée personnalisée? –

+0

Oui. Au moins pour les paramètres à regarder de cette façon. –

Questions connexes