Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

सी # ASP.NETWebAPI में FromBody और FromUri विशेषताओं के बीच क्या अंतर है?

जब ASP.NET वेब API किसी नियंत्रक पर किसी विधि को कॉल करता है, तो उसे पैरामीटर के लिए मान सेट करना चाहिए, एक प्रक्रिया जिसे पैरामीटर बाइंडिंग कहा जाता है।

एक मॉडल (एक एक्शन पैरामीटर) को बांधने के लिए, जो सामान्य रूप से एक फॉर्मेटर के लिए डिफ़ॉल्ट होगा, यूआरआई से हमें इसे [FromUri] विशेषता के साथ सजाने की जरूरत है। FromUriAttribute केवल ModelBinderAttribute से विरासत में मिला है, जो हमें IuriValueProviderFactory में परिभाषित ValueProviders का उपयोग करके URI से विशिष्ट पैरामीटर प्राप्त करने के लिए वेब API को निर्देश देने के लिए एक शॉर्टकट निर्देश प्रदान करता है। विशेषता को स्वयं सील कर दिया गया है और इसे आगे नहीं बढ़ाया जा सकता है, लेकिन आप अपनी इच्छानुसार कई कस्टम IuriValueProviderFactories जोड़ते हैं।

[FromBody] विशेषता जो ParameterBindingAttribute क्लास को इनहेरिट करती है, एक HTTP अनुरोध के मुख्य भाग से एक पैरामीटर और उसके गुणों को पॉप्युलेट करने के लिए उपयोग किया जाता है। ASP.NET रनटाइम एक इनपुट फॉर्मेटर को बॉडी को पढ़ने की जिम्मेदारी सौंपता है। जब [FromBody] को जटिल प्रकार के पैरामीटर पर लागू किया जाता है, तो इसके गुणों पर लागू किसी भी बाध्यकारी स्रोत विशेषताओं को अनदेखा कर दिया जाता है।

FromUri विशेषता के लिए उदाहरण -

उदाहरण

using System.Collections.Generic;
using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class DemoController : ApiController{
      public IEnumerable<string> Get([FromUri] string id, [FromUri] string name){
         return new string[]{
            $"The Id of the Student is {id}",
            $"The Name of the Student is {name}"
         };
      }
   }
}

उपरोक्त उदाहरण के लिए, आइए हम यूआरआई में आईडी और नाम के मान को गेट विधि में उनके संबंधित चर में पॉप्युलेट करने के लिए पास करें।

https://localhost:58174/api/demo?id=1&name=Mark

आउटपुट

उपरोक्त कोड का आउटपुट है

सी # ASP.NETWebAPI में FromBody और FromUri विशेषताओं के बीच क्या अंतर है?

फ्रॉमबॉडी एट्रिब्यूट के लिए उदाहरण -

उदाहरण

आइए हम एक छात्र मॉडल बनाते हैं जिसमें निम्न गुण होते हैं।

namespace DemoWebApplication.Models{
   public class Student{
      public int Id { get; set; }
      public string Name { get; set; }
   }
}

नियंत्रक कोड -

उदाहरण

using DemoWebApplication.Models;
using System.Collections.Generic;
using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class DemoController : ApiController{
      public IEnumerable<string> Get([FromBody] Student student){
         return new string[]{
            $"The Id of the Student is {student.Id}",
            $"The Name of the Student is {student.Name}"
         };
      }
   }
}

उपरोक्त उदाहरण के लिए छात्र के लिए मूल्य अनुरोध निकाय में पारित किया गया है और इसे छात्र वस्तु की संबंधित संपत्ति में मैप किया गया है। पोस्टमैन का उपयोग करते हुए अनुरोध और प्रतिक्रिया नीचे दी गई है।

सी # ASP.NETWebAPI में FromBody और FromUri विशेषताओं के बीच क्या अंतर है?


  1. एचटीएमएल में आईडी और नाम विशेषताओं के बीच क्या अंतर है?

    आईडी एक फॉर्म एलिमेंट की आईडी सिर्फ एक पहचान करने के लिए कुछ नहीं करती है और तत्व के भीतर मौजूद डेटा से कोई लेना-देना नहीं है। आईडी लिखित रूप में संलग्न हैं और जावास्क्रिप्ट और सीएसएस . में उपयोग कर रहे हैं । JS विधि से संदर्भित getElementByID() नाम NAME विशेषता का उपयोग ब्राउज़र द्वारा सर्वर

  1. नोवालिडेट और फॉर्मनोवालिडेट विशेषताओं के बीच अंतर क्या है?

    नवीनीकरण और fऑर्मनोवैलिडेट सत्यापन को बायपास करने के लिए विशेषताओं का उपयोग किया जाता है। नवीनीकरण विशेषता किसी प्रपत्र पर लागू होती है और इसे सत्यापन से रोकती है। फॉर्मनोवैलिडेट इनपुट प्रकार सबमिट बटन पर लागू होता है, जो नवीनीकरण . को ओवरराइड करता है . यह फ़ॉर्म को बिना पुष्टि किए सबमिट कर देता है

  1. सी # में सूची और सरणी के बीच क्या अंतर है?

    एक सरणी एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत करती है, जबकि सूची एक सामान्य संग्रह है। सूची को परिभाषित करने के लिए - List<string7gt; myList = new List<string>(); सूची में तत्वों को सेट करने के लिए, आपको जोड़ें विधि का उपयोग करने की आवश्यकता है - myList