For循环的MergeAttribute值未按预期工作

时间:2019-03-11 07:17:14

标签: c# asp.net-mvc html-helper

我正在尝试让每个创建的选项的值中的现有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循环的交互上。

0 个答案:

没有答案