使用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;
}