0

我想在我的页面部分显示投票,我为此创建了这些 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 将我的模型传递给我的 View :

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

在我要显示的视图QuestionAnswer民意调查中,我尝试了以下代码:

@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:我的投票表中有一行显示在主页中

4

1 回答 1

1

Polls 和 PollsOption 之间存在关系。所以从你的数据库中获取民意调查。并将其传递给查看。此外,您已经有 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
        }
    }
}
于 2013-03-04T11:59:29.137 回答