在网址

时间:2015-10-02 19:25:46

标签: asp.net json angularjs

我正在使用asp.net构建一个rest API我的问题是,当我尝试将学生添加到我的数据库时:

http://localhost:50001/api/Students?&FirstName=cc&LastName=cc&Email=student10@gmail.com&DropOut=false&Live=false&ClassId=1&ImageId=1

我得到“值变量为空”, 这是我添加学生的代码:

      // Get All Students
        [Route("api/Students")]
        public IEnumerable<Student> Get()
        {
            return _StudentService.Queryable().ToList();
        }
// Insert Student
[Route("api/Students/")]
public IEnumerable<Student> Post(Student value)
        {
              cc.Students.Add(value);
                    cc.SaveChanges();
                    return Get();
   }

我使用“Fiddler web Debugger”来测试我的网址,它只能以这种方式运行:

enter image description here

现在如果我有一个试图将新学生添加到数据库的angularJS客户端,我该如何在URL中以json格式发送数据

这是我从我的客户angularJS添加新学生的方式:

$http({method: 'POST', url: 'http://localhost:50001/api/Students?&FirstName=cc&LastName=cc&Email=student10@gmail.com&DropOut=false&Live=false&ClassId=1&ImageId=1})

                 .success(function (data) {
                     console.log("success");

         }).error(function (data, status, headers, config) {

                     console.log("data error ...");
                            });

非常感谢你的帮助

1 个答案:

答案 0 :(得分:3)

如果你说你想要一个真正的Rest API,你应该继续使用POST动词,因为它在语义上更适合创建一个新学生。

可以在URL上传递新学生,但不能在您提供的配置中传递。 您的API方法需要POST请求,并且新学生位于HTTP正文中。

只需配置角度调用即可使用jsonData并将其发布到API。