我如何将此操作用作服务?
public class HomeController : Controller {
public string GetSomeValue(){
return "This is some value";
}
}
如果我导航到此网址http://mysite.com/Home/GetSomeValue,它会返回一个字符串,不带任何html或任何标记。
那么,是什么让我不能使用这种方法作为返回有意义的服务,比如json,我可以从任何地方打电话?
如果这是可能的,我该怎么做(从另一个asp.net网站背后的代码说)?
提前致谢。
答案 0 :(得分:4)
100%这样做没有错。
一个示例应用程序 - NerdDinner - 做同样的事情来装载晚餐。
请参阅http://nerddinner.codeplex.com/SourceControl/changeset/view/70027#874260了解控制器和http://nerddinner.codeplex.com/SourceControl/changeset/view/70027#874293了解javascript文件(查找NerdDinner.FindMostPopularDinners)
e.g。
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");
}
答案 1 :(得分:2)
这实际上是一个RESTful服务:
http://www.ibm.com/developerworks/webservices/library/ws-restful/
您只需构建http请求以使用此服务,您可以使用Hammock来构建此类请求: