我有一個Customer
類,我希望在用戶更改Customer.CityInfo
屬性的值時收到通知。如何檢測屬性值(引用類型屬性)在c#中更改?
public class City
{
public long Id {get;set;}
public string Code {get;set;}
}
public class Customer
{
private City cityInfo;
private string name;
public long Id { get; set; }
public bool IsCityModified { get; set;}
public bool IsCustomerNameModified { get; set; }
public string Name
{
get{ return name;}
set
{
if(name!=value)
{
IsCustomerNameModified=true; }name=value;
}
}
}
public City CityInfo
{
get
{
if(cityInfo==null)
{
cityInfo=new City();
}
return cityInfo;
}
set{
if(this.cityInfo!=value)
{
IsCityModified =true;
}
this.cityInfo=value;
}
}
}
public ActionResult Save()
{
Customer customer=this.currentCustomerSession;
if(TryUpdateModel<Customer>(customer)){
UpdateModel<Customer>(customer)
}
if(customer.IsCustomerNameModified){
//I am able to detect whether the customerName value has been changed in the frontend.
}
if(customer.IsCityModified){
//I am not able to detect whether the city value has been changed in the frontend.
}
}
我可以,如果客戶名稱,因爲它的值類型更改標誌(IsCustomerNameModified)設置爲true。但無法檢測參考類型中所做的更改。
任何人都可以幫忙嗎?
用戶如何與應用程序進行通信?通過贏的形式? – Fjodr 2013-03-26 14:37:48
字符串不是值類型,它是(不可變的)引用類型。 – 2013-03-26 14:38:03
我可以問你爲什麼想知道它是否改變?在某些情況下,驗證所有字段是否已更改爲執行較小的更新只需要比更新所有內容更多的時間。但也許你有另一個原因,我不知道:) – 2013-03-26 14:42:33