这是一个已经发生了几个星期的问题,想知道是否有人遇到过此问题,以及是否有修复问题:
假设我有一个名为'ListFruitsViewModel'的视图模型,为了参数,它包含具有属性的'Fruit'的基本模型
public Guid fruitID {get; set;}
public String fruitName {get; set;}
好的,所以我继续创建ListFruits视图,执行一些操作,一切正常。
然后我意识到我需要更改'Fruit'模型以包含'fruitColor'属性。所以我将'Fruit'的属性更改为:
public Guid fruitID {get; set;}
public String fruitName {get; set;}
public String fruitColor {get; set;}
现在我可以在Razor intellisense等中看到fruitColor属性,我已经改变了填充列表中的水果以包含新属性等的方法,并且无论我尝试什么,fruitColor属性在查看模型。
它几乎就像VS知道有一个新属性一样,底层的汇编文件还没有发现'Fruit'模型中有一个新属性,并没有填充它。
清理/构建/重建的各种组合并没有解决问题,并且VS重启没有任何乐趣。
我确信这是VS的一个怪癖以及它更新编译代码的方式。 有什么想法吗?
编辑:一个真实世界的例子:
我有一类带有属性的类型报告:
public Guid reportID { get; set; }
public String reportName { get; set; }
public DateTime reportCreated { get; set; }
public String reportCreatedBy { get; set; }
and I have just added:
public String reportCode { get; set; }
我从数据库中引入了这些列表,因此我已将填充列表的方法更改为:
public List<Report> ListReports() {
List<Report> list = new List<Report>();
DAL.DAL dal = new DAL.DAL();
DataTable dt = new DataTable();
Report item;
dt = dal.ListAllReports();
foreach (DataRow row in dt.Rows) {
item = new Report() {
reportID = new Guid(row["ReportID"].ToString()),
reportName = row["ReportName"].ToString(),
reportCreated = Convert.ToDateTime(row["ReportCreatedDateTime"].ToString()),
reportCreatedBy = row["ReportCreatedBy"].ToString(),
reportCode = row["ReportCode"].ToString()
};
list.Add(item);
}
return list;
}
我可以单步执行ListReports()方法,并且可以看到此时传递给对象的值,但是View模型中的属性始终为null,而其他属性按预期填充。 / p>