我假設您在模型/視圖模型類上使用某種IEnumerable
來填充下拉菜單中的項目。當您構建此列表時,只需在將模型返回到您的視圖之前添加您的「(當前)」和「(最新)」選項即可。如果FinancialPeriod
是這樣的模型/視圖模型類:
public class FinancialPeriod{
public int FinancialPeriodId { get; set; }
public string DisplayText { get; set; }
}
然後,你可以在你的控制器做這個,假設你從數據庫中檢索到的所有統計週期的列表被稱爲FinancialPeriods
在模型的屬性:
public ActionResult Index(){
var model = GetTheModel();
model.FinancialPeriods.Add(new FinancialPeriod{
FinancialPeriodId = <something>,
DisplayText = "(Current)"
};
model.FinancialPeriods.Add(new FinancialPeriod{
FinancialPeriodId = <somethingElse>
DisplayText = "(Latest)"
};
return View(model);
}
作出<something>
和<somethingElse>
當模型回發到你的控制器,你可以正確地解釋一定要替換值。
編輯 - 根據您的意見和修改,這樣的事情是比較合適的:
public ActionResult Index(){
var model = GetTheModel();
var currentMonth = DateTime.Now.Month;
var previousMonth = currentMonth - 1;
if (previousMonth == 0)
previousMonth = 12;
var currentPeriod = "Period " + currentMonth.ToString();
var latestPeriod = "Period " + previousMonth.ToString();
var newList = new List<FinancialPeriod>();
foreach(var period in model.FinancialPeriods){
if(period.DisplayText == currentPeriod)
{
newList.Add(new FinancialPeriod
{
FinancialPeriodId = period.FinancialPeriodId,
DisplayText = period.DisplayText + " (Current)"
};
continue;
}
if(period.DisplayText == latestPeriod)
{
newList.Add(new FinancialPeriod
{
FinancialPeriodId = period.FinancialPeriodId,
DisplayText = period.DisplayText + " (Latest)"
};
continue;
}
newList.Add(period);
}
model.FinancialPeriods = newList;
return View(model);
}
你總是知道期11是「最新」,這期間12是「當前?」還是那些動態值?如果是動態的,你是否總是知道這些字符串的格式爲「期間」+? –
他們總是動態的,是的,他們總是在期間的格式。 –
LiamGu
看到我的編輯如下。 –