2011-06-02 16 views
5

मैं अपने स्थानीय चर्च के लिए केवल ऐप पढ़ रहा हूं।क्या मैं विशेष रूप से एक विश्वसनीय वेब सेवा के रूप में एएसपी.नेट एमवीसी 3 का उपयोग कर सकता हूं?

हम अपने सभी वीडियो होस्ट करने के लिए Vimeo का उपयोग करते हैं, और मैं अपने वेब ऐप में हमारे Vimeo vids के साथ-साथ हमारे आरएसएस फ़ीड को एकीकृत करना चाहता हूं।

ऐप में शेष "सामग्री" स्थिर "जानकारी" के साथ-साथ संपर्क फ़ॉर्म भी होगी।

मेरा सवाल यह है कि क्या यह हमारे वेब ऐप पर जेएसओएन ड्राइव करने के लिए केवल एएसपी.नेट एमवीसी 3 ("वी" से कम) का उपयोग करने के लिए है?

उत्तर

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); 
    } 
} 
+0

यह मैं वास्तव में क्या सोच रहा था है:

यहाँ एक उदाहरण मैं उत्पादन में उपयोग कर रहा हूँ है। मैं वेब सेवाओं के लिए नया हूं, इसलिए मैं सर्वोत्तम प्रथाओं के बारे में थोड़ा चिंतित हूं। –

+0

आरईएसटी .... और एमवीसी के बारे में अच्छी चीजों में से एक। – ckramer

+1

आपको 404s और अन्य स्टेटस कोडों को संभालने की भी आवश्यकता होगी। एमवीसी 3 अब आपको उपयोगकर्ता को स्टेटस कोड वापस करने का विकल्प देता है। मैं विशेषता के रूप में नियंत्रक स्तर पर मार्गों को नियंत्रित करने के लिए AttributeRouteMapper प्रोजेक्ट की अनुशंसा करता हूं। इसे बनाए रखने के लिए यह बहुत आसान बनाता है। http://maproutes.codeplex.com/ –