1

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

最善の策は、必要なものがすべて含まれているビューモデルを作成することです。あなたのコードはまばらなので、私は暗闇の中でショットを撮ります:

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

次に、最初の@model行を次のように変更します。

@model CostumeContest.Models.MyViewModel

明らかに、クラスの名前を自分にとって意味のある名前に変更します。次に、インスタンスを作成し、それを使用してプロパティとプロパティをMyViewModel設定し、のインスタンスをではなくビューに送信します。VoteModelVoteResultMyViewModelVoteModel

于 2012-10-30T20:16:19.460 に答える
1

を使用しTupleて、両方のオブジェクトを保持します。

@model Tuple<VoteModel, VoteResult>

Gromerの答えはより良い設計ですが、これは簡単な解決策です。

于 2012-10-30T20:26:54.797 に答える
0

他の2つのクラスを保持するプロパティを持つ単一の外部モデルクラスを作成する必要があります。

于 2012-10-30T20:13:57.480 に答える