如何从不同的网站使用ASP.NET MVC中的数据?

时间:2008-11-07 10:39:53

标签: asp.net html asp.net-mvc json rest

我是第一次使用ASP.NET MVC,所以如果这听起来很有学问,我会提前道歉。

我使用ASP.NET MVC创建了一个简单的内容管理系统。检索内容列表的网址(在本例中为公告)如下所示:

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

这将返回最近十大公告。

我的问题如下:

  1. 任何网站都可以使用此服务吗?或者我是否还必须使用像WCF这样的东西来公开它?

  2. 有关如何使用此服务在其他网站上显示此数据的一些示例?我主要是在.NET世界中编程,但我在想如果我可以使用javascript来使用服务,或者使用Json做一些事情,它可以真正适用于任何技术。

  3. 我希望动态生成以下输出:

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

    现在......是否可以返回Html表示并将其显示在网页中?这可能只使用Javascript吗?

2 个答案:

答案 0 :(得分:1)

没有什么可以阻止另一个客户端只是抓取该特定页面并解析HTML。

但是你可能想要另一个视图使用相同的控制器来生成不包含多余格式HTML等的数据。或许看一下使用众所周知的格式如RSS?

您可以使用以下内容将结果作为JSON返回:

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

我想我会提供一个包含xml项目的视图和另一个返回JSON的视图,这样你可以充分利用这两个世界。

我有一篇关于如何使用MVC,JQuery和JSON here调用和返回内容的小帖子。

答案 1 :(得分:1)

你的ROUTE非常好,任何人都可以使用。诀窍在于您希望如何公开该路线的数据。你说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);
}