【问题标题】:use json format in an URL在 URL 中使用 json 格式
【发布时间】:2015-12-31 02:13:57
【问题描述】:

我正在用 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”来测试我的网址,它只能以这种方式工作:

现在如果我有一个 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 ...");
                            });

非常感谢您的帮助

【问题讨论】:

  • 如果需要发送JSON格式的数据,为什么不使用POST呢?否则,您可以使用 JSON.stringify()。
  • ok @jason9187 谢谢我会测试 JSON.stringify() 因为我已经在我的 angularJS 客户端中使用了 POST
  • 但是如果你对内容进行字符串化,那么你只需要在后端解析它。我建议你坚持使用 POST。
  • 好的,杰森,非常感谢 :)

标签: asp.net json angularjs


【解决方案1】:

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

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

只需将您的角度调用配置为使用 jsonData 并将其发布到您的 API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2014-01-31
    • 2018-11-18
    • 1970-01-01
    相关资源
    最近更新 更多