实体框架模型绑定/编辑器模板

时间:2013-08-02 14:47:58

标签: asp.net-mvc entity-framework entity-framework-6 asp.net-mvc-5

在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)是最好的方法

1 个答案:

答案 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);
    }