Arka uç için WebApi ile bir AngularJS SPA uygulaması yapıyorum. Sunucuda model doğrulama için öznitelikleri kullanıyorum, doğrulama başarısız olursa bu, ModelState'den döndüğüm şeydir.İstemciye nasıl hata yapılır? AngularJS/WebApi ModelState
{"Message":"The request is invalid.","ModelState":{"model.LastName":["Last Name must be at least 2 characters long."]}}
Bunu daha sonra AngularJS ile istemciye nasıl yaparım? sunucunuza çağrı yaparken
//Save User Info
$scope.processDriverForm = function(isValid) {
if (isValid) {
//set button disabled, icon, text
$scope.locked = true;
$scope.icon = 'fa fa-spinner fa-spin';
$scope.buttonText = 'Saving...';
$scope.submitted = true;
$scope.formData.birthDate = $scope.formData.birthMonth + '/' + $scope.formData.birthDay + '/' + $scope.formData.birthYear;
$http({
method: 'POST',
url: 'api/Account/Register',
data: $.param($scope.formData),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload)
})
.success(function (data) {
console.log(data);
toastr.success('User ' + $scope.formData.username + ' created!');
$scope.userForm.$setPristine();
$scope.formData = {};
//reset the button
$scope.locked = false;
$scope.icon = '';
$scope.buttonText = 'Save';
//reset validation submitted
$scope.submitted = false;
})
.error(function (data, response) {
console.log(data);
toastr.error('Ooops! There was an error creating the user. Try again and if the problem persists, contact Support.');
//reset the button
$scope.locked = false;
$scope.icon = '';
$scope.buttonText = 'Save';
$scope.submitted = false;
var resp = {};
var errors = [];
for (var key in resp.ModelState) {
for (var i = 0; i < resp.ModelState[key].length; i++) {
errors.push(resp.ModelState[key][i]);
}
}
$scope.errors = errors;
});
}
else {
toastr.warning('Invalid User Form, correct errors and try again.');
}
};
Ne denediniz? Bunu, düzinelerce yöntemle halledebilirsiniz. Bu soru, geniş bir yoldur. Öncelikle uygulamanızın ihlali için davranışınızı seçmelisiniz (uyarı? Açılır? Yapışkan bildirim?) ... –
Üzgünüm, render etme tarzını düşünmedim. Ben sadece 400 BadRequest hata –