我正在尝试让每个创建的选项的值中的现有ID循环。第一个选项为空。它适用于内部文本,但不适用于合并属性“值”。
我的代码:
var inneroption = new TagBuilder("option");
StringBuilder optionbuilder = new StringBuilder();
inneroption.SetInnerText("");
optionbuilder.Append(inneroption.ToString());
foreach (var terminal in GetFlightTerminals)
{
inneroption.MergeAttribute("value", terminal.ID.ToString());
inneroption.SetInnerText(terminal.Name);
optionbuilder.Append(inneroption.ToString());
}
innerselect.InnerHtml = optionbuilder.ToString();
预期输出:
<option></option>
<option value="b5ccdcab-9dfd-40e8-9640-8fe8ef5c5f40">option
1</option>
<option value="19ae8a66-c4fc-474f-a421-192a64445e6b">option
2</option>
<option value="c5ff1e56-23a8-44eb-a890-42e5cf78f2ef">option
3</option></select>
会发生什么:
<option></option>
<option value="b5ccdcab-9dfd-40e8-9640-8fe8ef5c5f40">option
1</option>
<option value="b5ccdcab-9dfd-40e8-9640-8fe8ef5c5f40">option
2</option>
<option value="b5ccdcab-9dfd-40e8-9640-8fe8ef5c5f40">option
3</option></select>
尝试将terminal.ID.ToString()值放置到内部文本中,并且效果很好,所以我想问题出在MergeAttribute与for循环的交互上。