Мне просто нужно создать новую статью со многими ко многим отношениям для тегов. У меня есть 3 таблицы:
public class Article
{
public int Id {get; set; }
public string Name { get; set; }
public string ShortDescription { get; set; }
public string Description { get; set; }
public byte[] HeroImage { get; set; }
public DateTime Date { get; set; }
public string Category { get; set; }
public virtual List<ArticleTag> ArticlesTags { get; set; }
public Article()
{
ArticlesTags = new List<ArticleTag>();
}
}
public class Tag
{
public int Id { get; set; }
public string Name { get; set; }
public virtual List<ArticleTag> ArticlesTags { get; set; }
public Tag()
{
ArticlesTags = new List<ArticleTag>();
}
}
public class ArticleTag
{
public int ArticleId { get; set; }
public Article Article { get; set; }
public int TagId { get; set; }
public Tag Tag { get; set; }
}
Это мой контроллер:
public IActionResult CreateNewArticle()
{
return View();
}
[HttpPost]
public async Task<IActionResult> CreateNewArticle(ArticlesView av)
{
Article artical = new Article { Name = av.Name, Category = av.Category,
ShortDescription =av.ShortDescription, Description=av.Description, Date = av.Date };
// some code to add Tags from View
db.Add(artical);
await db.SaveChangesAsync();
return RedirectToAction("AdminView");
Моя модель для создания:
public class ArticlesView
{
public IEnumerable<Article> Articles { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public string ShortDescription { get; set; }
public string Description { get; set; }
public DateTime Date { get; set; }
public IFormFile Image { get; set; }
}
}
ИView:
<form asp-action="CreateNewArticle" asp-controller="home" method="post" enctype="multipart/form-data">
<div class="form-group">
<label asp-for="Name" class="control-label">The name of article</label>
<input type="text" asp-for="Name" class="form-control" />
</div>
<div class="form-group">
<label asp-for="ShortDescription" class="control-label">Short description</label>
<input type="text" asp-for="ShortDescription" class="form-control" />
</div>
<div class="form-group">
<label asp-for="Description" class="control-label">Description</label>
<input type="text" asp-for="Description" class="form-control" />
</div>
<div class="form-group">
<label asp-for="Category" class="control-label">Category</label>
<input type="text" asp-for="Category" class="form-control" />
</div>
<div class="form-group">
<label asp-for="Date" class="control-label">Date of creation</label>
<input type="date" asp-for="Date" class="form-control" />
</div>
Как я понял, мне просто нужно добавить данные в мою 3-ю таблицу ArticleTag (ArticleId, TagId столбцы), но я не понимаю, какой тип данных должен вводиться в полях Viewи что я должен делать в моем контроллере. Заранее спасибо