2008-11-07 8 views
0

Je joue avec ASP.NET MVC pour la première fois, alors je m'excuse d'avance si cela semble académique.Comment consommer des données d'un ASP.NET MVC à partir d'un site Web différent?

J'ai créé un système de gestion de contenu simple en utilisant ASP.NET MVC. L'URL pour récupérer une liste de contenu, dans ce cas, les annonces, ressemble à:

http://www.mydomain.com/announcements/list/10 

Cela renverra les dix annonces les plus récentes.

Mes questions sont les suivantes:

  1. Est-il possible pour un site Web de consommer ce service? Ou devrais-je aussi l'exposer en utilisant quelque chose comme WCF?

  2. Quels sont les exemples de consommation de ce service pour afficher ces données sur un autre site Web? Je suis principalement programmeur dans le monde .NET, mais je pense que si je pouvais consommer le service en utilisant javascript, ou faire quelque chose avec Json, cela pourrait vraiment fonctionner pour n'importe quelle technologie.

Je cherche à générer dynamiquement quelque chose comme la sortie suivante:

<div class="announcement"> 
    <h1>Title</h1> 
    <h2>Posted Date</h3> 
    <p>Teaser</p> 
    <a href="www.someotherdomain.com">More</a> 
</div> 

Pour l'instant ... est-il possible de retourner une représentation Html et l'afficher dans une page Web? Est-ce possible en utilisant juste Javascript?

Répondre

1

Rien n'empêche un autre client d'extraire cette page et d'analyser votre code HTML.

Cependant, vous voudrez probablement une autre vue en utilisant le même contrôleur qui génère les données qui ne contiennent pas trop de formatage HTML, etc. Peut-être envisager d'utiliser un format bien connu tel que RSS?

Vous pouvez retourner le résultat au format JSON en utilisant quelque chose comme ci-dessous:

public JsonResult GetResults() 
{ 
return Json(new { message = "SUCCESS" }); 
} 

Je pense que j'offre une vue qui contient les éléments tels que XML et un autre qui retourne JSON cette façon, vous avez le meilleur des deux mondes .

J'ai un petit article sur comment appeler et retourner quelque chose en utilisant MVC, JQuery et JSON here.

1

Votre ROUTE est parfaitement bien et consommable par n'importe qui. L'astuce consiste à savoir comment vous souhaitez exposer vos données pour cette route. Vous avez dit XML. sûr. Vous pouvez même faire du JSon ou du Html ou simplement du texte simple.

L'astuce serait dans la méthode de votre contrôleur et dans l'objet résultat de la vue.

est Voici la liste des principaux résultats de vue: -

  • ActionResult
  • ContentResult
  • EmptyResult
  • JsonResult
  • RedirectResult

par exemple.

public <ContentResult> AnnouncmentIndex(int numberOfAnnouncements) 
{ 
    // Generate your Xml dynamically. 
    string xml = "<div class=\"announcement\"><h1>Title</h1><h2>Posted Date</h3><p>Teaser</p><a href="www.someotherdomain.com">More</a></div>" 


    Response.ContentType = "application/xml"; // For extra bonus points! 

    return Content(xml); 
}