मैं एक एप्लिकेशन लिख रहा हूं जो किसी तीसरे पक्ष की सेवा से POST डेटा स्वीकार कर रहा है।
जब यह डेटा पोस्ट किया जाता है तो मुझे 200 HTTP स्टेटस कोड वापस करना होगा।
मैं अपने नियंत्रक से यह कैसे कर सकता हूं?
मैं एक एप्लिकेशन लिख रहा हूं जो किसी तीसरे पक्ष की सेवा से POST डेटा स्वीकार कर रहा है।
जब यह डेटा पोस्ट किया जाता है तो मुझे 200 HTTP स्टेटस कोड वापस करना होगा।
मैं अपने नियंत्रक से यह कैसे कर सकता हूं?
जवाबों:
अपने नियंत्रक में आप इस तरह से एक HttpStatusCodeResult लौटाएँगे ...
[HttpPost]
public ActionResult SomeMethod(...your method parameters go here...)
{
// todo: put your processing code here
//If not using MVC5
return new HttpStatusCodeResult(200);
//If using MVC5
return new HttpStatusCodeResult(HttpStatusCode.OK); // OK = 200
}
int
रूप में के रूप में अच्छी तरह से ले रहे हैं HttpStatusCode
।
200 एक सफल अनुरोध के लिए सामान्य HTTP शीर्ष लेख है। यदि आप सभी की जरूरत है, बस नियंत्रक हैreturn new EmptyResult();
HttpStatusCodeResult(...)
इसके बजाय आपको इसका उपयोग करना चाहिए क्योंकि आप जो हासिल करने की कोशिश कर रहे हैं उसके बारे में बहुत अधिक स्पष्ट है। स्वीकृत उत्तर के अनुसार।
आप बस निम्न की तरह प्रतिक्रिया की स्थिति कोड को 200 पर सेट कर सकते हैं
public ActionResult SomeMethod(parameters...)
{
//others code here
...
Response.StatusCode = 200;
return YourObject;
}
[HttpPost]
public JsonResult ContactAdd(ContactViewModel contactViewModel)
{
if (ModelState.IsValid)
{
var job = new Job { Contact = new Contact() };
Mapper.Map(contactViewModel, job);
Mapper.Map(contactViewModel, job.Contact);
_db.Jobs.Add(job);
_db.SaveChanges();
//you do not even need this line of code,200 is the default for ASP.NET MVC as long as no exceptions were thrown
//Response.StatusCode = (int)HttpStatusCode.OK;
return Json(new { jobId = job.JobId });
}
else
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(new { jobId = -1 });
}
}
.NET कोर में ऐसा करने का तरीका निम्नानुसार है (लेखन के समय):
public async Task<IActionResult> YourAction(YourModel model)
{
if (ModelState.IsValid)
{
return StatusCode(200);
}
return StatusCode(400);
}
StatusCode विधि रिटर्न का एक प्रकार StatusCodeResult जो लागू करता IActionResult और इस तरह अपनी कार्रवाई की वापसी प्रकार के रूप में इस्तेमाल किया जा सकता।
एक रिफ्लेक्टर के रूप में, आप HTTP स्टेटस कोड का एक का उपयोग करके पठनीयता में सुधार कर सकते हैं जैसे:
return StatusCode((int)HttpStatusCode.OK);
इसके अलावा, आप कुछ निर्मित परिणामों का भी उपयोग कर सकते हैं। उदाहरण के लिए:
return Ok(); // returns a 200
return BadRequest(ModelState); // returns a 400 with the ModelState as JSON
संदर्भ। StatusCodeResult - https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.statuscoderesult?view=aspnetcore-2.1