app.directive('ensureUnique', ['$http', function ($http) {
return {
require: 'ngModel',
link: function (scope, ele, attrs, c) {
scope.$watch(attrs.ngModel, function () {
$http.post("http://localhost:xxxx/api/Persons/CheckUserName", c.$modelValue).success(function (data) {
c.$setValidity('unique', false);
}).error(function () {
c.$setValidity('unique', false);
});
});
}
}
}]);
服务器:
[HttpPost]
public bool CheckUserName(string field)
{
bool IsUnique = false;
if(field=="Meee")
{
IsUnique = false;
}
else
{
IsUnique = true;
}
return IsUnique;
}
我正在尝试验证输入的用户是否已存在。我正在使用VS 2015.好吧我的问题是我在CheckUserName API中有一个断点。它没有击中!当我尝试访问不同的API断点时,像往常一样?
angular
.module('app')
.controller('Main', function ($scope, $http) {
$scope.GetPersons = function () {
$http.get("http://localhost:xxxx/api/Persons/GetPersons").success(function (data) {
$scope.Persons = data;
}).error(function () {
alert("failed");
});
},
$scope.PostPersons = function () {
$http.post("http://localhost:xxxx/api/Persons/GetPersonsWithAge", $scope.Persons).success(function (data) {
$scope.PersonsWAges = data;
alert("Success");
}).error(function () {
alert("failed");
});
}
});
注意:这是两个不同的项目,但都是从调试开始的。
答案 0 :(得分:1)
当你尝试将参数传递给post方法时,你需要在JSON
第二个参数中以数据$http.post
格式传递它。当您使用.Net MVC时,需要进行字符串化。
<强>代码强>
$http.post("http://localhost:xxxx/api/Persons/CheckUserName", JSON.stringify({
field: c.$modelValue
}))