1

我正在尝试构建一个选择列表,其中将包含一些优先值,然后是分隔符,然后是其余值。我需要在 Html Helper 中执行此操作,因为我将获得将被优先考虑的值以及来自不同来源的其余值。

我想要完成的示例:

EUR
GBP
USD
---
SEK
ZAR
.
.
.

我还想确保无法选择分隔符。如果我直接在 html 中执行此操作,我已经设法执行此操作,但是在通过帮助程序执行此操作时我没有设法禁用分隔符。任何想法如何做到这一点?

4

1 回答 1

5

我最终创建了一个 html 辅助方法,该方法采用我的两个列表,并为每个项目创建一个“选项”类型的新标签,并将其添加到选择列表中。这样我就可以添加属性,比如“disabled="disabled"”等等。

它不整洁,不整洁。老实说,这是一种很棒的代码,我希望有更好的方法来做到这一点。但是,目前完成我的任务的时间很短,所以最终这样做了:

var fullList = new StringBuilder();

var selectList = new TagBuilder("select");
selectList.Attributes.Add("name", "currencies");
selectList.Attributes.Add("id", "selectCurrency");

foreach (var currency in currencies)
{
    var option = new TagBuilder("option") {InnerHtml = currency.Id};
    option.Attributes.Add("value", currency.Id);
    fullList.AppendLine(option.ToString());
}

var separator = new TagBuilder("option") { InnerHtml = "-------" };
separator.Attributes.Add("disabled", "disabled");
fullList.AppendLine(separator.ToString());

selectList.InnerHtml = fullList.ToString();

如果您有更好的方法,请告诉我,我稍后可能会重新访问此任务进行一些重构,并且希望有一个好的方法来完成它。

于 2010-08-18T08:29:26.623 回答