1

我正在尝试在单个 cshtml 文件中使用多个模型。我的代码是:

@model CostumeContest.Models.VoteModel  
@{
    ViewBag.Title = "Vote";
}


<h2 style="color: #B45F04">Vote Receipt</h2>
<b>Your Name:</b> @Model.VoterName
<br />
<b>Your Vote for Best Costume: </b>@Model.BestName
<br />
<b>Your Vote for Most Creative Costume:</b> @Model.CreativeName
<br />

<h2 style="color: #B45F04">Vote Summary</h2>

//@model CostumeContest.Models.VoteResult    this is giving me problems when not commented out
<h3 style="color: #B45F04">Best Costume</h3>


<h3 style="color: #B45F04">Most Creative Costume</h3> 

我在上面做的事情有什么问题,更重要的是,我该如何解决我的问题?谢谢你。

4

3 回答 3

1

使用 aTuple来容纳两个对象。

@model Tuple<VoteModel, VoteResult>

Gromer 的回答是更好的设计,但这是一个简单的解决方案。

于 2012-10-30T20:26:54.797 回答
1

最好的办法是制作一个包含你需要的一切的视图模型。由于您的代码很稀疏,因此我将在黑暗中试一试:

namespace CostumeContest.Models
{
    public class MyViewModel
    {
        public VoteModel VoteModel { get; set; }
        public VoteResult VoteResult { get; set; }
    }
}

然后将第一@model行更改为:

@model CostumeContest.Models.MyViewModel

显然,您会将类的名称更改为对您有意义的名称。然后,您将创建一个MyViewModel实例,使用它设置VoteModelandVoteResult属性,并将 的实例发送MyViewModel到视图,而不是VoteModel.

于 2012-10-30T20:16:19.460 回答
0

您应该创建一个外部模型类,其属性包含其他两个类。

于 2012-10-30T20:13:57.480 回答