我有很多控制器從輸入值stdo
中提取相同的值,如下面的控制器中所示。創建類時修改屬性
// Controller
public ActionResult GetValues(StatisticsDTO stdo)
{
var startDate = DateTime.Parse(stdo.Timespan.Substring(0, 10));
var endDate = DateTime.Parse(stdo.Timespan.Substring(12));
// Rest of controller actions ...
}
我希望做的是有在StatisticsDTO
對象的構造函數中完成這兩個動作,然後添加到另一個屬性。
我試過將行移動到兩個不同的構造函數中,但TimeSpan
值始終爲空。這是可能的還是有其他方式來重構呢?
public class StatisticsDTO
{
public string Timespan { get; set; }
public string Country { get; set; }
public string AppName { get; set; }
public DateTime StartDate { get; set; } // New property
public DateTime EndDate { get; set; } // New property
public StatisticsDTO() {
this.StartDate = DateTime.Parse(Timespan.Substring(0, 10));
this.EndDate = DateTime.Parse(Timespan.Substring(12));
}
public StatisticsDTO(string Timespan, string Country, string AppName)
{
this.StartDate = DateTime.Parse(Timespan.Substring(0, 10));
this.EndDate = DateTime.Parse(Timespan.Substring(12));
}
}
我希望你明白我在這裏之後。
編輯
假設我打電話了$ajax
調用這個動作來自客戶端的數據變量
$.ajax({
type: "GET",
url: "/GetValues",
data: { Timespan: "01/01/01 - 02/02/02", Country: "US", AppName: "V1" }
});
這些參數被翻譯成StatisticsDTO
對象。我想在創建stdo對象時在構造函數中設置StartDate
和EndDate
屬性。
你是什麼意思:「添加到其他財產」 ?什麼屬性? – Tigran 2014-11-04 13:24:29
什麼時候您的屬性命名爲Timespan集? – ken2k 2014-11-04 13:24:34
「StartDate」和「EndDate」屬性是隻讀的嗎?如果是這樣,你可以在有人訪問時進行解析。 – juharr 2014-11-04 13:30:51