试图将数据从angularjs发送到c# mvc控制器。虽然数据收集得很好(我在console.log中看到它们),但它们在c#控制器中不能很好地接收,因此,空值存储在数据库中。下面是我的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>
与george合作,发现他将他的角形模型定义为
ng-model='animal.name'
代替
ng-model='animal.animalName'
尝试将控制器函数更改为:
public Task<ActionResult> AngularData(Animal animal)
{
db.Animals.Add(animal);
db.SaveChanges();
return Json(new { foo = "bar", baz = "Blech" });
}
然后在提交到数据库之前检查"animal"中是否有任何内容