【问题标题】:AngularJS $Resource POST WebAPI 2AngularJS $Resource POST WebAPI 2
【发布时间】:2014-10-21 15:59:58
【问题描述】:

我正在尝试使用 AngularJS 中的“$resource”将 bookData 发布到我的 WebAPI2 服务。当它首先从 BookService 获取一本书,修改该书并将其发布到 BookService 时,这工作正常。

我正在寻找一种无需先从 BookService 获取图书即可发布图书的方法。

首先,我在 WebAPI2 中创建了一个 REST 服务:

public IHttpActionResult Get([FromUri] string id)

public IHttpActionResult Post([FromBody] BookData bookData)

其次,在控制器中,我试图获取一些书籍数据。 BookService 被注入到 Controller 中

var bookData;
    
var book = BookService.get({ id: 1 }, function()
    {
        bookData = book;
        
    });

$scope.sendBook = function () {
    bookData.Title = 'Test REST';

    var book = new BookService(bookData);

    book.$save();
 }

我尝试了以下方法,但它不起作用

var bookData = {Title: 'Test REST'};

$scope.sendBook = function () {
    var book = new BookService(bookData);

    book.$save();
 }

【问题讨论】:

  • 你能发布你的 bookservice 代码吗?

标签: angularjs rest post resources asp.net-web-api2


【解决方案1】:

里面只有一些静态数据。

public class BookController : ApiController
{
    [HttpGet]
    public IHttpActionResult Get([FromUri] string id)
    {
        BookViewModel vm = new BookViewModel
        {
            Title = "TEST REST"
        };

        return Ok(vm); 
    }

    [HttpPost]
    public IHttpActionResult Post([FromBody] BookData bookData)
    {
        BookViewModel vm = new BookViewModel
        {
            Title = "TEST REST"
        };

        return Created(new Url(Request.RequestUri.ToString()), vm);
    }
}

【讨论】:

    【解决方案2】:

    我找到了解决方案。将 bookData 分配给 $scope

    类似:

    $scope.bookData = { Title: 'Some title' };

    【讨论】:

      猜你喜欢
      • 2015-11-29
      • 2015-12-24
      • 2015-12-31
      • 2018-02-06
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多