我正在尝试使用angular将表单数据发布到ASP.NET Web API。所以我有:
<form name="form" data-ng-controller="SubscriberController">
<input data-ng-model="subscriber.name" name="name" type="text"/>
<input data-ng-model="subscriber.email" name="email" type="text"/>
<input data-ng-click="create(subscriber)" type="submit" value="Send" />
</form>
application.service('SubscriberService', function ($http) {
return {
Create: function (subscriber) {
console.log(subscriber);
return $http.post('api/subscribers/create', { 'subscriber': subscriber });
}
}
});
application.controller('SubscriberController', function SubscriberController($scope, SubscriberService) {
$scope.create = function (subscriber) {
SubscriberService.Create(subscriber)
.success(function (data, status, headers, config) { })
.error(function (data, status, headers, config) { });
};
});
最后在ASP.NET API上我有以下内容:
public class SubscriberController : ApiController {
[Route("api/subscribers/create"), HttpPost]
public void Create([FromBody]SubscriberCreateModel subscriber) {
// Create subscriber
} // Create
}
public class SubscriberCreateModel {
public Int32 Country { get; set; }
public String Email { get; set; }
public String Name { get; set; }
}
在我的角度服务上,我正在记录订阅者,我得到:
Object { name="john", email="john@something.pt" }
问题是在控制器上,订阅者属性,电子邮件和姓名都为空...
知道我缺少什么吗?
答案 0 :(得分:0)
您需要对数据进行编码并将数据作为网址编码发送,请查看我的文章,了解如何在此处使用带有angularjs的web api 2 http://www.codeproject.com/Articles/742532/Using-Web-API-Individual-User-Account-plus-CORS-En
希望这有帮助
答案 1 :(得分:0)
您必须在html中为 SubscriberController创建对象。
<form name="form" data-ng-controller="SubscriberController as subscriber">
<input data-ng-model="subscriber.name" name="name" type="text"/>
<input data-ng-model="subscriber.email" name="email" type="text"/>
<input data-ng-click="create(subscriber)" type="submit" value="Send" />
</form>