Asp.net mvc 将文本追加到从DB填充的下拉选项
我正在MVC应用程序中构建一个页面,其中包含一个下拉框,允许用户从多个财务期间中选择一个 为了让我们的用户更清楚,我想在当前财务期间的选项后面加上“(当前)”,并在前一个期间后面加上“(最新)”以表示最后一个完整期间。我们已经可以确定我们所处的财政期间以及随后的前一个财政期间,依此类推 那么让我们假设我现在想要附加的两个选项如下所示:Asp.net mvc 将文本追加到从DB填充的下拉选项,asp.net-mvc,Asp.net Mvc,我正在MVC应用程序中构建一个页面,其中包含一个下拉框,允许用户从多个财务期间中选择一个 为了让我们的用户更清楚,我想在当前财务期间的选项后面加上“(当前)”,并在前一个期间后面加上“(最新)”以表示最后一个完整期间。我们已经可以确定我们所处的财政期间以及随后的前一个财政期间,依此类推 那么让我们假设我现在想要附加的两个选项如下所示: public class FinancialPeriod{ public int FinancialPeriodId { get; set; }
public class FinancialPeriod{
public int FinancialPeriodId { get; set; }
public string DisplayText { get; set; }
}
- 第11期
- 第12期
- 第11期(最新)
- 第12期(当前)
感谢您提前提供的帮助。我假设您正在模型/视图模型类上使用某种类型的
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);
}
public ActionResult Index(){
var model=GetTheModel();
model.FinancialPeriods.Add(新的FinancialPeriod{
财务周期=,
DisplayText=“(当前)”
};
model.FinancialPeriod.Add(新的FinancialPeriod{
财务周期=
DisplayText=“(最新)”
};
返回视图(模型);
}
确保将模型发回控制器时可以正确解释的
和
替换为值
编辑-根据您的评论和编辑,这样更合适:
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);
}
public ActionResult Index(){
var model=GetTheModel();
var currentmount=DateTime.Now.Month;
var previousMonth=当前月份-1;
如果(上一个月==0)
上个月=12;
var currentPeriod=“Period”+currentMonth.ToString();
var latestPeriod=“Period”+上一个月.ToString();
var newList=新列表();
foreach(模型中的var期间。财务期间){
if(period.DisplayText==currentPeriod)
{
newList.Add(新财务周期)
{
FinancialPeriodId=期间。FinancialPeriodId,
DisplayText=句点。DisplayText+(当前)
};
继续;
}
if(period.DisplayText==latestPeriod)
{
newList.Add(新财务周期)
{
FinancialPeriodId=期间。FinancialPeriodId,
DisplayText=period.DisplayText+(最新版本)
};
继续;
}
newList.Add(句点);
}
model.FinancialPeriods=新列表;
返回视图(模型);
}
我假设您正在模型/视图模型类上使用某种类型的IEnumerable
来填充下拉列表中的项目。构建此列表时,只需在将模型返回到视图之前添加“(当前)”和“(最新)”选项。如果Financial Period
是这样的模型/视图模型类:
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);
}
public ActionResult Index(){
var model=GetTheModel();
model.FinancialPeriods.Add(新的FinancialPeriod{
财务周期=,
DisplayText=“(当前)”
};
model.FinancialPeriod.Add(新的FinancialPeriod{
财务周期=
DisplayText=“(最新)”
};
返回视图(模型);
}
确保将模型发回控制器时可以正确解释的
和
替换为值
编辑-根据您的评论和编辑,这样更合适:
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);
}
public ActionResult Index(){
var model=GetTheModel();
var currentmount=DateTime.Now.Month;
var previousMonth=当前月份-1;
如果(上一个月==0)
上个月=12;
var currentPeriod=“Period”+currentMonth.ToString();
var latestPeriod=“Period”+上一个月.ToString();
var newList=新列表();
foreach(模型中的var期间。财务期间){
if(period.DisplayText==currentPeriod)
{
newList.Add(新财务周期)
{
FinancialPeriodId=期间。FinancialPeriodId,
DisplayText=句点。DisplayText+(当前)
};
继续;
}
if(period.DisplayText==latestPeriod)
{
newList.Add(新财务周期)
{
FinancialPeriodId=期间。FinancialPeriodId,
DisplayText=period.DisplayText+(最新版本)
};
继续;
}
newList.Add(句点);
}
model.FinancialPeriods=新列表;
返回视图(模型);
}
很抱歉,我的问题可能不是特别清楚。下拉列表中已经存在选项,比如说第11段和第12段。我想将这些选项附加到显示文本中,以便它们读取第11段(最新)和第12段(当前)。哦,你总是知道第11段是“最新”,第12段是“最新”吗“当前?”不,这只是我的例子。它每个月都在变化,所以我们的下一个当前期间是