1

クイズ形式の MVC アプリケーションがあります。私は現在、ビューに渡しています:

public class Question{
    public int QuestionId;
    public string QuestionText;
    public string AnswerText;
    public int Answer;
}

ただし、すべての応答で、null 文字列値を持つ 2 つの int プロパティのみが必要 (および取得) です。私の質問は、私のモデルには 2 つの int プロパティだけを含める必要があり、文字列プロパティを に渡す必要があると思いますViewData/ViewBagか?

4

2 に答える 2

0

以下のようにビューモデルを分割します

public class Question : QuestionAnswerId
{
    public int QuestionText;
    public int AnswerText;
}

public class QuestionAnswerId
{
    public int QuestionId;
    public int Answer;
}
于 2013-08-16T09:32:07.740 に答える
0

あなたの質問への答えとして、はい、そうすべきだと思います。この場合Answer、ビューから返され、関心のある 2 つの int プロパティのみを含むクラスを作成します。

public class Answer{
    public int QuestionId;
    public int Answer;
}

これを受け取るコントローラー アクションは、 type のパラメーターを受け入れることができますAnswer。これにより、モデル バインディングが正しく設定されます。ビューから文字列プロパティを返す必要がない場合は、渡さないでください。必要な場合は、Answerクラスに追加してください。これには、ViewData または ViewBag を使用する必要はまったくありません。また、@ emre-nevayeshirazi の提案に従って、それらの名前をQuestionViewModelandに変更します。AnswerViewModel次に、ドメイン層に渡す前に、これらを同等のドメイン クラスにマップします。

于 2013-08-16T09:25:13.070 に答える