我正在尝试构建一个选择列表,该列表将包含一些优先级值,然后是分隔符,然后是其余值。我需要在Html帮助器中执行此操作,因为我将获得优先级较高的值以及其余值的来源。

我要完成的样本:

EUR
GBP
USD
---
SEK
ZAR
.
.
.


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

最佳答案

我最终做了一个创建HTML辅助方法的方法,该方法使用了我的两个列表,并且为每个项目创建一个新的“选项”类型的Tag,并将其添加到选择列表中。这样,我可以添加属性,例如“ 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();


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

关于c# - 在HTML Helper中使用分隔符创建Selectlist,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3503264/

10-13 07:41