1

我有一个测验风格的 MVC 应用程序。我目前正在传递视图:

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

但是,在响应中,我只需要(并获取)两个 int 属性,具有空字符串值。所以我的问题是,你认为我的模型应该只包含两个 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;
}

接收到这个的控制器动作可以接受类型的参数Answer,模型绑定将正确填充。如果您不需要从视图中返回字符串属性,请不要传递它们。如果您确实需要它们,请将它们添加到Answer课程中。根本不需要为此使用 ViewData 或 ViewBag。我还将根据@emre-nevayeshirazi 的建议将它们重命名为QuestionViewModelAnswerViewModel然后,在将它们传递给域层之前,我会将它们映射到它们的等效域类。

于 2013-08-16T09:25:13.070 回答