asp.net mvc tagbuilder.setinnertext () 텍스트를 올바르게 설정하지 않음

StackOverflow https://stackoverflow.com/questions/1439829

  •  10-07-2019
  •  | 
  •  

문제

따라서 htmlhelper 확장 메소드를 만들고 있으며 tagbuilder.setinnertext ()를 사용할 때 문제가 발생했습니다. 도우미는 옵션 태그를 출력합니다. 다음은 도우미의 출처입니다.

public static string Option(this HtmlHelper helper, string value, string text, object htmlAttributes) {
        TagBuilder tagBuilder = new TagBuilder("option");

        tagBuilder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
        tagBuilder.MergeAttribute("value", value);
        tagBuilder.SetInnerText(text);

        return tagBuilder.ToString(TagRenderMode.SelfClosing);
    }

내 견해로는 전화합니다

<%= Html.Option("value", "text", new { }) %>

그러나 태그의 내부 텍스트는 설정되지 않았고 나는

<option value="value"> </option>

SetInnerText ()가 텍스트를 올바르게 설정하지 않는 이유에 대한 아이디어가 있습니까?

감사.

도움이 되었습니까?

해결책

return tagBuilder.ToString(TagRenderMode.SelfClosing) - is the problem

그것은 출력을 시도합니다 <option value="" />, 내부 텍스트를 삽입 할 곳이없는 곳.

만들기 :

return tagBuilder.ToString(TagRenderMode.Normal)

다른 팁

나는 그것이 올바른 사용 방법이라고 생각합니다 InnerText 아래입니다. 설정해야합니다 InnerText 태그를 만들고 추가 속성을 정의한 후에.

TagBuilder tagBuilder = new TagBuilder("select")
{
    InnerHtml = "set Anything"
};
tagBuilder.MergeAttribute("value", value);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top