dre*_*att 0 c# asp.net asp.net-mvc asp.net-mvc-4
我想为API创建一个端点.
目前,我的应用程序中有一个类,它执行存储过程并返回一个对象列表,我可以很容易地将其转换为json,如下所示:
public ActionResult Events()
{
List<HobbsEventsMobile.Models.Event> events = HobbsEventsMobile.Models.Event.GetEventSummary();
var jsonSerializer = new JavaScriptSerializer();
ViewBag.Events = jsonSerializer.Serialize(events);
return View();
}
Run Code Online (Sandbox Code Playgroud)
然后在我看来:
@ViewBag.Events
Run Code Online (Sandbox Code Playgroud)
但问题是这(显然)呈现了布局的其余部分.
我该怎么做才能正确设置它,以便这是一个只呈现JSON的端点 - 而不是HTML的其余部分?(如果有办法为整个控制器执行此操作,可以获得奖励)
ASP.NET MVC控制器已经有一个返回JSON的方法:
public ActionResult Events()
{
var events = HobbsEventsMobile.Models.Event.GetEventSummary();
return Json(events, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
如果您将控制器充当JSON端点,则可以创建Web API控制器并返回模型:
public class EventController : ApiController
{
public object Events()
{
return HobbsEventsMobile.Models.Event.GetEventSummary();
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在此处阅读有关Web API的更多信息:http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api