Как использовать данные из ASP.NET MVC с другого сайта? - PullRequest
0 голосов
/ 07 ноября 2008

Я впервые играю с ASP.NET MVC, поэтому заранее прошу прощения, если это звучит академично.

Я создал простую систему управления контентом, используя ASP.NET MVC. URL для получения списка содержимого, в данном случае объявлений, выглядит следующим образом:

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

Это вернет десятку самых последних объявлений.

У меня следующие вопросы:

  1. Возможно ли для любого веб-сайта использовать эту услугу? Или я должен был бы также выставить это, используя что-то вроде WCF?

  2. Каковы некоторые примеры того, как использовать этот сервис для отображения этих данных на другом веб-сайте? Я в основном программирую в мире .NET, но думаю, что если бы я мог использовать сервис с помощью javascript или сделать что-то с Json, он мог бы действительно работать для любой технологии.

Я хочу динамически сгенерировать что-то вроде следующего:

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

Пока ... возможно ли вернуть HTML-представление и отобразить его на веб-странице? Это возможно, используя только Javascript?

Ответы [ 2 ]

1 голос
/ 07 ноября 2008

Ваш МАРШРУТ идеально подходит и может быть использован любым. Хитрость заключается в том, как вы хотите представить свои данные для этого маршрута. Вы сказали, XML. конечно. Вы даже можете сделать JSon или Html или просто простой текст.

Трюк будет в вашем методе контроллера и объекте просмотра результата.

Вот список основных результатов просмотра: -

  • ActionResult
  • ContentResult
  • EmptyResult
  • JsonResult
  • RedirectResult

например.

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);
}
1 голос
/ 07 ноября 2008

Ничто не мешает другому клиенту просто очистить эту конкретную страницу и проанализировать ваш HTML.

Однако вам, вероятно, понадобится другое представление, использующее тот же контроллер, который генерирует данные, которые не содержат избыточного форматирования HTML и т. Д. Может быть, стоит использовать широко известный формат, такой как RSS?

Вы можете вернуть результат в формате JSON, используя что-то вроде ниже:

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

Думаю, я бы предложил представление, содержащее элементы в формате xml, и другое, которое возвращает JSON таким образом, чтобы у вас было лучшее из обоих миров.

У меня есть небольшой пост о том, как вызывать и возвращать что-то, используя MVC, JQuery и JSON здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...