我要做的就是创建四个接口:
public IQuestionDetail
{
string QuestionText { get; }
// Question Details
}
public IQuestionView
{
IQuestionDetail QuestionDetail { get; }
}
public IAnswerDetail
{
int/guid QuestionID { get; }
string AnwerText { get; }
// Anwer Details
}
public IAnswerView
{
IAnswerDetail AnswerDetail { get; }
}
然后我得到4类
public QuestionDetail : IQuestionDetail
{ //implemented }
public AnswerDetail : IAnswerDetail
{ //implemented }
public QuestionViewModel : IQuestionView, IAnswerView
{ //implemented }
public AnswerModel : IAnswerView
{ //implemented }
的单一视图(问题/ Detail.cs)
@model Models.QuestionViewModel
@html.Partial("partial-questionDetails", Model)
@html.Partial("partial-answerDetails", Model)
两个部分Views
//partial-questionDetails.cshtml
@model Models.IQuestionView
@Html.DisplayFor(Model.QuestionDetail)
//partial-answerDetails.cshtml
@model Models.IAnswerView
@Html.BeginForm()
{
Html.EditorFor(Model.AnswerDetail)
}
QuestionController
public ActionResult Detail(IAnswerView AnswerModel)
{
// AnswerModel is only populated with the Answer Fields
// Do Stuff with AnswerModel
QuestionViewModel viewModel = new QuestionViewModel()
View(viewModel);
}
那么,答案是什么?它是一个包含问题和答案的特殊模型视图对象吗? – agibalov
你可以做任何你提到的情况。尽管如此,我还是希望让所有动态数据都处于视图模型中。这是个人喜好。 –