এটি পছন্দ করুন, উদাহরণস্বরূপ:
public HttpResponseMessage Post(Person person)
{
if (ModelState.IsValid)
{
PersonDB.Add(person);
return Request.CreateResponse(HttpStatusCode.Created, person);
}
else
{
// the code below should probably be refactored into a GetModelErrors
// method on your BaseApiController or something like that
var errors = new List<string>();
foreach (var state in ModelState)
{
foreach (var error in state.Value.Errors)
{
errors.Add(error.ErrorMessage);
}
}
return Request.CreateResponse(HttpStatusCode.Forbidden, errors);
}
}
এটি এর মতো প্রতিক্রিয়া ফিরিয়ে দেবে (ধরে নিচ্ছে জেএসওন, তবে এক্সএমএলের একই মূল নীতি):
HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8
(some headers removed here)
["A value is required.","The field First is required.","Some custom errorm essage."]
আপনি অবশ্যই আপনার ত্রুটিযুক্ত অবজেক্টটি তৈরি করতে পারেন / আপনার পছন্দ মতো কোনও তালিকা তৈরি করতে পারেন, উদাহরণস্বরূপ ক্ষেত্রের নাম যুক্ত করা, ফিল্ড আইডি ইত্যাদি etc.
এমনকি যদি এটি একটি "একমুখী" এজাক্স কোনও নতুন সত্তার পোষ্টের মতো কল করে, আপনার এখনও কলারে কিছু ফিরিয়ে দেওয়া উচিত - যা অনুরোধটি সফল হয়েছিল কিনা তা নির্দেশ করে। এমন কোনও সাইটের কল্পনা করুন যেখানে আপনার ব্যবহারকারী একটি এজেএক্স পোস্ট অনুরোধের মাধ্যমে নিজের সম্পর্কে কিছু তথ্য যুক্ত করবেন। তারা যে তথ্য প্রবেশের চেষ্টা করেছে তা যদি বৈধ না হয় - তবে তাদের সংরক্ষণের কাজটি সফল হয়েছিল কিনা তা তারা কীভাবে জানবে?
এই কাজ করতে সবচেয়ে ভালো উপায় ব্যবহার করছে ভাল পুরানো HTTP স্থিতি কোড মত 200 OK
ইত্যাদি। আপনার জাভাস্ক্রিপ্ট সঠিক কলব্যাকস (ত্রুটি, সাফল্য ইত্যাদি) ব্যবহার করে ব্যর্থতাগুলি সঠিকভাবে পরিচালনা করতে পারে।
একটি অ্যাকশন ফিল্টার এবং jQuery ব্যবহার করে এই পদ্ধতির আরও উন্নত সংস্করণে এখানে একটি সুন্দর টিউটোরিয়াল: http://asp.net/web-api/videos/getting-started/custom-validation
System.Net.Http
,System.Net
System.Web.Http.Controllers
এবংSystem.Web.Http.Filters
।