如何将此操作用作服务?
public class HomeController : Controller {
public string GetSomeValue(){
return "This is some value";
}
}如果我导航到这个URL,http://mysite.com/Home/GetSomeValue,它返回一个字符串,没有任何html或任何类型的标记。
那么,是什么阻止我使用这个方法作为一个服务,返回一些有意义的东西,比如json,我可以从任何地方调用它?
如果这是可能的,我将如何做到这一点(例如,从另一个asp.net网站的代码背后)?
提前谢谢。
发布于 2012-02-14 04:13:32
这样做100%没有错。
一个样例应用程序-- NerdDinner --做同样的事情来does加载晚餐。
请参见控制器的http://nerddinner.codeplex.com/SourceControl/changeset/view/70027#874260和javascript文件的http://nerddinner.codeplex.com/SourceControl/changeset/view/70027#874293 (查找NerdDinner.FindMostPopularDinners )
例如:
C#
// AJAX: /Search/GetMostPopularDinners
// AJAX: /Search/GetMostPopularDinners?limit=5
[HttpPost]
public ActionResult GetMostPopularDinners(int? limit)
{
var dinners = dinnerRepository.FindUpcomingDinners();
// Default the limit to 40, if not supplied.
if (!limit.HasValue)
limit = 40;
var mostPopularDinners = from dinner in dinners
orderby dinner.RSVPs.Count descending
select dinner;
var jsonDinners =
mostPopularDinners.Take(limit.Value).AsEnumerable()
.Select(item => JsonDinnerFromDinner(item));
return Json(jsonDinners.ToList());
} JS
NerdDinner.FindMostPopularDinners = function (limit) {
$.post("/Search/GetMostPopularDinners", { "limit": limit }, NerdDinner._renderDinners, "json");
}发布于 2012-02-14 04:14:48
这本质上是一个RESTful服务:
http://www.ibm.com/developerworks/webservices/library/ws-restful/
你需要做的就是构造一个http请求来使用这个服务,你可以使用Hammock来构造这样的请求:
https://stackoverflow.com/questions/9267333
复制相似问题