Я пытаюсь зациклить существующий идентификатор в значении каждой созданной опции. С первым вариантом, являющимся пустым. Он работает для внутреннего текста, но не для атрибута слияния "value".
Мой код:
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.