尝试将数据从angularjs发送到C#mvc控制器。尽管收集的数据很好(我用console.log看到它们),但它们在C#控制器中收不到,所以null值存储在数据库中。 这是我的Angular代码:
var formapp = angular.module("formapp", []);
formapp.controller("formctrl", function ($scope, $http) {
$scope.submitFormAngular = function () {
var animal = $scope.animal;
var url = '/Home/AngularData';
$http({
method: 'POST',
url: url,
data: animal,
}).success(function (data) {
console.log($scope.animal);
console.log("worked");
})
.error(function (error) {
console.log("not worked");
});
}
});
这是我的C#DTO:
public class Animal
{
[Key]
public int animalID { get; set; }
public string animalName { get; set; }
public string animalHabitat { get; set; }
public string animalClass { get; set; }
}
最后这是我的C#控制器:
public JsonResult AngularData(Animal animal)
{
db.Animals.Add(animal);
db.SaveChanges();
return Json(new { foo = "bar", baz = "Blech" });
}
再次:即使值存储在UI中,它们也不会传递给C#代码。 我是Angular等的新人 欢迎任何帮助。
这是我的表单的html代码:
<div class="form-group">
<label for="name" class="col-md-3 text-align-right"><strong>Name</strong></label>
<input name="name"
id="name"
type="text"
maxlength="80"
ng-model="animal.name"
required
placeholder="write a name" />
<!-- data-ng-change="getFormData(animal)">-->
</div>
<div class="form-group">
<label for="habitat" class="col-md-3 text-align-right"><strong>Habitat</strong></label>
<input name="habitat"
id="habitat"
type="text"
ng-model="animal.habitat"
required
placeholder="write a habitat" />
<!-- data-ng-change="getFormData(animal)">-->
</div>
<div class="form-group">
<label for="class" class="col-md-3 text-align-right"><strong>Class</strong></label>
<input name="class"
id="class"
type="text"
ng-model="animal.class"
required
placeholder="write a class" />
<!-- data-ng-change="getFormData(animal)">-->
</div>
答案 0 :(得分:2)
与GeorgeD合作并发现他的角形模型被定义为
ng-model='animal.name'
而不是
ng-model='animal.animalName'
更改此修复它。
答案 1 :(得分:0)
尝试将控制器功能更改为:
public Task<ActionResult> AngularData(Animal animal)
{
db.Animals.Add(animal);
db.SaveChanges();
return Json(new { foo = "bar", baz = "Blech" });
}
然后在提交数据库之前检查“animal”中是否有任何内容。