Angular表单到c# MVC实体控制器的空值

本文关键字:控制器 空值 实体 MVC 表单 Angular | 更新日期: 2023-09-27 18:09:22

试图将数据从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>

Angular表单到c# MVC实体控制器的空值

与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"中是否有任何内容