我有很多ViewModel派生自ViewModel。
是否可以在基础ViewModel中显示派生的ViewModel部分的EditorTemplate,以及在同一View中显示派生部分的不同模板?如果是的话,它是如何完成的?
Base ViewModel:
public class ShowQuestionViewModel
{
public int Question_ID { get; set; }
public String Question_Wording { get; set; }
public String Question_Type { get; set; }
public String Question_Number { get; set; }
public Boolean Visible { get; set; }
public Boolean IsAnswered { get; set; }
}
派生的ViewModel:
public class ShowMatrixQuestionViewModel : ShowQuestionViewModel
{
public Dictionary<MatrixRows, List<MatrixColumns>> columnrow;
public List<MatrixColumns> columns;
public List<MatrixRows> rows;
public ShowMatrixQuestionViewModel()
{
columns = new List<MatrixColumns>();
rows = new List<MatrixRows>();
columnrow = new Dictionary<MatrixRows, List<MatrixColumns>>();
}
}
public class MatrixColumns
{
public int Column_ID { get; set; }
public int Column_Number { get; set; }
public String Column_Description { get; set; }
public Boolean IsAnswer { get; set; }
}
public class MatrixRows
{
public int Row_Id { get; set; }
public String Row_Number { get; set; }
public String Row_Description { get; set; }
}
因此,当我使用EditorFor(x =&gt; ShowMatrixQuestionViewModel)时,我想对来自ShowQuestionViewModel的属性使用特殊的编辑器。
答案 0 :(得分:0)
您可以创建单独的编辑器模板:
@model ShowMatrixQuestionViewModel
@Html.EditorForModel()
然后定义自定义编辑器模板~/Views/Shared/EditorTemplates/ShowMatrixQuestionViewModel.cshtml
,您可以在其中自定义所有属性,包括基本类型的属性。