在ASP.NET MVC视图中以逗号分隔文本框获取文章的所有标记的最佳方法是什么,编辑它们,单击保存并添加新/现有或从“编辑”操作中删除编辑文章中的标记? DB Structire最简单:
文章:
ArticleID int
ArticleTitle varchar(50)
ArticleTags varchar(MAX)
标签:
TagID int
TagText varchar(20)
ArticleTag:
ArticleID int PK FK Article.ArticleID
TagID int PK FK Tag.TagID
我知道自定义模型绑定器或编辑器模板有多种方法。但不确定我是否会编写自定义编辑器模板然后编写脚手架,它是否会从文本框中提取标签并为我节省,或者我仍然需要编写此逻辑。 我不想使用复选框,因为如果我以后会有1000个标签,那么很难找到正确的标签,所以文本框(比如StackOverflow)是最好的方法
答案 0 :(得分:0)
public ActionResult Create(Article article)
{
if (ModelState.IsValid)
{
db.Articles.Add(article);
db.SaveChanges();
article = db.Articles.Include(x => x.Tags).Where(x => x.ArticleID == article.ArticleID).First();
var Articleedtags = Request["Keywords"].Replace(", ", ",").Split(',').ToList();
Articletags.ForEach(tag => Article.Tags.Add(db.Tags.SingleOrDefault(x => x.Text == tag) ?? db.Tags.Add(new Tag { Text = tag })));
db.SaveChanges();
return RedirectToAction("Index");
}
return View(Article);
}