我想在My Page的部分显示轮询,我已经创建了这些POCO类:
public class Polls
{
public int Id { get; set; }
public string Question { get; set; }
public bool Active { get; set; }
public IList<PollOptions> PollOptions { get; set; }
}
public class PollOptions
{
public int Id { get; set; }
public virtual Polls Polls { get; set; }
public string Answer { get; set; }
public int Votes { get; set; }
}
我在ViewModel下面使用过:
public class PollViewModel
{
public int Id { get; set; }
public string Question { get; set; }
public string Answer { get; set; }
}
然后,我使用上面的ViewModel将我的模型传递给我的视图:
public ActionResult Index()
{
var poll = from p in db.Polls
join po in db.PollOptions on p.Id equals po.Polls.Id
where p.Active == true
select new PollViewModel {
Id=p.Id,
Question=p.Question,
Answer=po.Answer
};
return View(model);
}
在我的视图中我想显示我的民意调查的Question
和Answer
,我试过这段代码:
@section Polling{
@foreach (var item in Model.Polls)
{
<input type="radio" /> @item.Answer
}
}
上面的代码工作正常但我想显示Question
,如下所示:
@section Polling{
**@Model.Polls.Question**
@foreach (var item in Model.Polls)
{
<input type="radio" /> @item.Answer
}
}
我该怎么做?
PS:我的民意调查表中有一行显示在主页
答案 0 :(得分:1)
民意调查与民意调查之间存在关系。所以从你的数据库中获取民意调查。并传递给它查看。此外,您已经有PollsOptions连接到他们的民意调查。无需加入两个表格。
控制器
public ActionResult Index()
{
// get active Polls
var poll = from p in db.Poll
where p.Active == true
select p;
// pass it to the view
return View(poll);
}
视图
@model IEnumerable<Polls>
@section Polling{
@foreach (var question in Model)
{
<h2>@question.Question</h2>
@foreach(var answer in question.PollOptions)
{
<input type="radio" /> @answer.Answer
}
}
}