2016-10-04 1 views
0

Ce que j'essaye de faire est que j'ai un ensemble de trois sites Web hébergés sur trois clients différents (A, B, C). L'un des sites Web (That is B) contient des informations sur les en-têtes et pieds de page du site A. Je souhaite obtenir des informations du SITE B dans une réponse JSON HTML pour afficher la Navigation sur le SITE A et le SITE C.Comment faire pour mettre en cache la réponse JSON pour générer du code HTML pour la navigation et l'image de marque d'un site Web?

Mon sous-estimation est que pour obtenir la réponse est JSON et enregistrer cette information dans le fichier cache pour générer du HTML.

Est-ce que ma compréhension est correcte? Comment puis-je atteindre cet objectif? Y a-t-il une meilleure manière de faire cela?

+0

Vous souhaitez mettre en cache le résultat HTML ou le résultat JSON de votre contrôleur? – Guillaume

+0

@Guillaume Le contrôleur retournera le résultat JSOn et je veux rendre les données mises en cache au format HTML. –

Répondre

0

Fondamentalement, si vous voulez mettre en cache résultat JSON de l'action de votre contrôleur, vous pouvez utiliser OutputCache attribut:

[OutputCache(Duration = 10)] //Duration is in seconds 
public ActionResult GetMyJsonData() { 
    var myData = new Data(); 
    return Json(data); 
} 

Vous pouvez appliquer le même attribut sur votre action qui renvoie le code HTML.

+0

Le point est comment pouvons-nous accéder aux données mises en cache dans une application tierce. J'ai enregistré le site Une navigation HTML dans le cache, l'application a une seule signature implémentée avec le site tiers. Comment le site Web tiers peut-il obtenir le code HTML mis en cache et afficher le code HTML mis en cache sur son site à l'exécution? –

+0

Vous n'avez pas mentionné cela comme ça. Votre site tiers doit effectuer un appel Web à 'GetMyJsonData' sur le premier site. Une autre solution consiste à créer une stratégie de cache partagé en utilisant Redis par exemple. – Guillaume