我有一个桌面板(但是把它看成是一个帖子)。对于每个职位/董事会,我想增加投票的可能性,并创建了一个表格投票。每个帖子都可以有一个投票数(例如5个),每个投票都属于一个职位/董事会。我认为它必须是一对一的关系。正确?
这是我的模特
public class Board
{
[Key]
public int MessageId { get; set; }
public String Message { get; set; }
[Required]
public Vote Vote { get; set; }
}
public class Vote
{
[Key]
public int? VoteId { get; set; }
public int? Votes { get; set; }
public Board Board { get; set; }
}
当我尝试创建新帖子ModelState.IsValid
时,它是错误的,没有错误,并且在我调试时看不清楚原因。
这是我的控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "messageId,message,VoteId,Votes")] Board board)
{
if (ModelState.IsValid)
{
db.Boards.Add(board);
db.SaveChanges();
return RedirectToAction("Index");
}
return RedirectToAction("Index");
}
我认为应该没问题,因为我在模型中接受null
投票。
我已在两个表中手动添加了一些数据,并在网页上显示了包含代码的结果,但我无法创建新帖子。
展示帖子/主板
// GET: Boards
public ActionResult Index()
{
var data = db.Boards.Include("Vote").ToList();
return View(data);
}
和观点。
@model IEnumerable<Klotterplank.Models.Board>
@foreach (var item in Model)
{
<ul>
<li class="board-blocks">@Html.DisplayFor(modelItem => item.Message)</li>
<li class="board-blocks">@Html.DisplayFor(modelItem => item.Vote.Votes)</li>
</ul>
}
答案 0 :(得分:0)
如果每个帖子都有最大值一票和一票只属于一个帖子,投票只是一个int,我建议添加&#34;投票&#34;作为nullable int to&#34; Post&#34;所以你甚至不需要投票表