我可以将ASP.NET MVC3专门用作RESTful Web服务吗?

Cha*_*ell 5 web-services sencha-touch asp.net-mvc-3

我正在为我们当地的教堂建立一个只读的应用程序.

我们使用Vimeo来托管我们的所有视频,并且我希望将我们的Vimeo视频以及我们的RSS提要集成到我们的网络应用程序中.

应用程序中其余的"内容"将是静态"信息"以及联系表单.

我的问题是,仅仅使用ASP.NET MVC3(减去"V")将JSON驱动到我们的Web应用程序是否犹豫不决?

Chr*_*ken 10

是的,这很好用.只需返回一个JsonResult.

这是我在生产中使用的一个例子:

 public partial class StudentController : BaseController {
    public StudentController(RESTContext portalContext)
        : base(portalContext) { }

    [HttpGet, Url("organizations/{organizationId?}/students")]
    public virtual JsonResult List(Guid? organizationId) {
        if (organizationId != RESTContext.OrganizationId)
            throw new HttpNotAuthorizedException();

        var query = RESTContext.GetQuery<IQuery<StudentCasesReport>>()
            .Where(x => x.OrganizationId, organizationId)
            .OrderBy(x => x.LastName, SortOrder.Ascending);
        var cases = query.Execute(IsolationLevel.ReadUncommitted);

        return Json(cases, JsonRequestBehavior.AllowGet);
    }

    [HttpGet, Url("organizations/{organizationId?}/students/{studentId?}")]
    public virtual JsonResult Get(Guid? organizationId, Guid? studentId) {
        if (studentId.IsNull())
            throw new HttpNotFoundExecption();

        if (organizationId != RESTContext.OrganizationId)
            throw new HttpNotModifiedException();

        var query = RESTContext.GetQuery<IQuery<StudentCasesReport>>()
            .Where(x => x.OrganizationId, organizationId)
            .Where(x => x.StudentCaseId, studentId)
            .OrderBy(x => x.LastName, SortOrder.Ascending);
        var cases = query.Execute(IsolationLevel.ReadUncommitted).FirstOrDefault();

        if (cases.IsNull())
            throw new HttpNotFoundExecption();

        return Json(cases, JsonRequestBehavior.AllowGet);
    }
}
Run Code Online (Sandbox Code Playgroud)