1

请原谅我可能会做的任何说错话。我只是在学习 asp.net c#、OOP 和 MVC 4。

我在我的网站上使用 Annotator 插件,我正在尝试从数据库中存储和检索结果。当一个新的注解被创建时,它会向控制器发送这样的信息。

 {
      "text":"asdas sd a dasd as dasd",
      "ranges":
       [{
             "start":"/div/p[3]",
             "startOffset":195,
             "end":"/div/p[3]",
             "endOffset":532
       }],
       "quote":"Some quote that was selected.",
       "UserID":"1",
       "ProjectDocID":"1"
 }

现在,我希望这样的事情能够将所有数据加载到一个不错的简单对象中。

 // GET: /Annotation/Create

    public ActionResult Create(Comment comment)
    {
        db.Comments.Add(comment);
        db.SaveChanges();
        return Json(comment);
    }

我看起来像这样的模型(我正在改变它,但是它需要改变)。

public class Comment
{
    [Key]
    public int CommentID { get; set; }
    public int ProjectDocID { get; set; }
    public int UserID { get; set; }

    public string text { get; set; }
    public string Annotation { get; set; }
    public string quote { get; set; }
    public string start { get; set; }
    public string end { get; set; }
    public string startOffset { get; set; }
    public string endOffset { get; set; }
    public DateTime DateCreated { get; set; }

    public virtual ICollection<CommentVote> CommentVote { get; set; }
    public virtual ICollection<CommentReply> CommentReply { get; set; }

    public ProjectDoc ProjectDoc { get; set; }
    public virtual User User { get; set; } 
}

我需要做什么才能从服务器获取数据并将其映射到模型。我还需要能够以顶部的格式将其发送回,以便插件在从控制器中的 Details 操作中请求它时理解它。

4

1 回答 1

1

不确定这是否是正确的方法,但它可以让我将它存储在数据库中,这就是目前的全部。我更新了我的模型如下。

public class Comment
{
    [Key]
    public int CommentID { get; set; }
    public int ProjectDocID { get; set; }
    public int UserID { get; set; }
    public string text { get; set; }
    public string quote { get; set; }
    public DateTime DateCreated { get; set; }

    public virtual ICollection<CommentVote> CommentVote { get; set; }
    public virtual ICollection<CommentReply> CommentReply { get; set; }
    public ProjectDoc ProjectDoc { get; set; }
    public virtual User User { get; set; }
    public List<ranges> ranges { get; set; }
}
public class ranges {
    public int ID { get; set; }
    public string start { get; set; }
    public string end { get; set; }
    public string startOffset { get; set; }
    public string endOffset { get; set; }


}

这与我使用 Ajax 发送到控制器的 JSON 对象相匹配。一旦它完全匹配上面的控制器动作就可以了。

于 2012-12-21T08:09:42.743 回答