使用Angular和.Net Core将下拉值发送到后端

使用Angular和.Net Core将下拉值发送到后端,.net,angular,entity-framework,dropdown,.net,Angular,Entity Framework,Dropdown,我的后端类如下所示: public partial class Book { public Book() { BookAuthors = new HashSet<BookAuthor>(); } public int BookId { get; set; } public string Title { get; set; } public ICollection<BookAuthor> BookAutho

我的后端类如下所示:

public partial class Book
{
    public Book()
    {
        BookAuthors = new HashSet<BookAuthor>();
    }

    public int BookId { get; set; }
    public string Title { get; set; }

    public ICollection<BookAuthor> BookAuthors { get; set; }
}
我可以在Authors下拉列表中看到我选择的选项,但是如何将authorId发送到后端?在Angular中的createBook中,我有以下内容:

createBook(book: Book) {
book.bookId = 0;
for (let a of book.authors) {
  a.authorId = Number(this.authorsDropdown.key);
  book.authors.push(a);
} 
this.errorMessage = null;
this.bookService.createBook(book).subscribe(
  b => this.router.navigate(['/authenticated/book-maint']),
  err => this.errorMessage = 'Error creating book'
);
}

在C#中:


我希望我能解释我想做什么。谢谢

你的问题是什么?您不知道如何通过http发送数据?或者您正在发送数据,但数据无法到达服务器?我不知道如何从Authors下拉列表中获取authorId并将其发送到后端。我在createBook方法中尝试的方法不起作用。在C#中,我收到一本书,但它的作者是空的。createBook中的for不起作用…我试图将authorsId放入book.authors中,但显然不是正确的方法。如果没有包含发送代码,则很难理解问题所在。但解决问题的最简单方法是创建一个自定义操作来处理此问题。您的图书模型需要完整的图书作者模型,而不仅仅是id。因此,要么发送完整的模型,要么创建一个操作,在c#end上处理此问题,并直接调用该操作,但是BookAuthor有BookId和AuthorId,这就是为什么我尝试发送AuthorId的原因,我已经有BookId了,我需要从下拉列表中获取AuthorId…用于发送的代码在angular中的createBook方法中..我应该如何更新它,以便它从下拉列表中获取AuthorId?我也应该在angular中创建bookAuthor实体?我只看到你调用CreateBook,你访问http发送它吗?
createBook(book: Book) {
book.bookId = 0;
for (let a of book.authors) {
  a.authorId = Number(this.authorsDropdown.key);
  book.authors.push(a);
} 
this.errorMessage = null;
this.bookService.createBook(book).subscribe(
  b => this.router.navigate(['/authenticated/book-maint']),
  err => this.errorMessage = 'Error creating book'
);
public Book Create([FromBody] Book book)
{
  // validation
  if (book == null)
  {
    throw new AppException("Book not found");
  }

  _context.Book.Add(book);
  _context.SaveChanges();

  var bookAuthor = new BookAuthor();
  bookAuthor.BookId = book.BookId;
  bookAuthor.AuthorId = ??

  return book;
}