【问题标题】:Modify the SelectListItem getter to return a modified Text Value修改 SelectListItem getter 以返回修改后的文本值
【发布时间】:2019-04-07 13:02:42
【问题描述】:

我有一个具有IEnumerable<SelectListItem> 作为其属性之一的类。我正在使用此列表来填充 @Html.DropDownListFor() 下拉列表 - 这是有效的,并且我在下拉列表中得到了我期望的值。

但是我想修改下拉列表中显示的文本值。

我认为一种方法是修改 Getter 中的值,如下所示:

    public IEnumerable<SelectListItem> ShippingQuotes
    {
        get { return ShippingQuotes; }//SomethingHere to modify the text property of the Select List Items; 

        set { ShippingQuotes = value; }
    }

有人可以帮我看看这里的语法吗?

【问题讨论】:

  • 仔细查看SelectListItem 构造函数并使用适合您需要的构造函数。这很容易。

标签: c# c#-4.0 selectlistitem


【解决方案1】:

您可以使用Select() 简单地修改其文本:

public IEnumerable<SelectListItem> ShippingQuotes
{
     get { return shippingQuotes.Select(x => {x.Text = "Some Text" + x.Text; return x;}); } 
     set { ShippingQuotes = value; }
}

【讨论】:

  • 我明白你在做什么。在Select 中进行修改绝不是一个好主意。它应该用于查询而不是编辑。
  • 我不同意,如果我们只是查询,我们会使用WhereSelect用于映射和修改
  • 它违反了函数式编程的原则,因为它有副作用。你可以继续这样做,但我只是想让你知道。现在你知道了。
  • 实际上,当我出于某种原因这样做时,它只是在运行时不断崩溃。但是....语法是正确的,我只是在获取值后才应用它,而不是在 getter 中,谢谢,将其标记为我需要的正确。
  • @AyoAdesina 很高兴能帮上忙。
猜你喜欢
  • 1970-01-01
  • 2019-03-11
  • 2012-07-07
  • 1970-01-01
  • 2023-01-05
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 2018-03-07
相关资源
最近更新 更多