Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 将文本追加到从DB填充的下拉选项_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 将文本追加到从DB填充的下拉选项

Asp.net mvc 将文本追加到从DB填充的下拉选项,asp.net-mvc,Asp.net Mvc,我正在MVC应用程序中构建一个页面,其中包含一个下拉框,允许用户从多个财务期间中选择一个 为了让我们的用户更清楚,我想在当前财务期间的选项后面加上“(当前)”,并在前一个期间后面加上“(最新)”以表示最后一个完整期间。我们已经可以确定我们所处的财政期间以及随后的前一个财政期间,依此类推 那么让我们假设我现在想要附加的两个选项如下所示: public class FinancialPeriod{ public int FinancialPeriodId { get; set; }

我正在MVC应用程序中构建一个页面,其中包含一个下拉框,允许用户从多个财务期间中选择一个

为了让我们的用户更清楚,我想在当前财务期间的选项后面加上“(当前)”,并在前一个期间后面加上“(最新)”以表示最后一个完整期间。我们已经可以确定我们所处的财政期间以及随后的前一个财政期间,依此类推

那么让我们假设我现在想要附加的两个选项如下所示:

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段是“最新”吗“当前?”不,这只是我的例子。它每个月都在变化,所以我们的下一个当前期间是