我要做的就是創建四個接口:
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
你可以做任何你提到的情況。儘管如此,我還是希望讓所有動態數據都處於視圖模型中。這是個人喜好。 –