2008-11-07 2 views
5

정적 HTML을 생성하고이를 사용자에게 보여줘야하는 HTML 양식 디자이너를 개발 중입니다. 나는이 같은 추한 코드를 작성 계속 :C# 3.0에는 정적 HTML을 생성하는 데 도움이되는 클래스가 있습니까?

public string GetCheckboxHtml() 
{ 
    return ("<input type="checkbox" name="somename" />"); 
} 

는 HTML 요소를 설명하고 나 대신이 같은 코드를 작성할 수 있도록 강력한 형식의 클래스 세트하지 있습니까 : 그냥 할 수

var checkbox = new HtmlCheckbox(attributes); 
return checkbox.Html(); 

를 ' 올바른 네임 스페이스를 사용하여 Google에서 사용할 정확한 검색어를 찾아야합니다.

답변

5

글쎄, 당신은 그들이 가지고있는 ASP.NET MVC DLL의 (당신이 에서 프로젝트 ... 콘솔 애플리케이션을 포함한 모든 유형을 사용할 수있는) ... 다음 사용할 수있는 많은 HTML 헬퍼를 다운로드합니다.

+0

에 동의합니다. 나는이 솔루션을 많이 좋아합니다. 아마도 이것을 사용할 것입니다. ASP.NET MVC HTML 도우미를 잊어 버렸습니다. 감사! –

2

하나의 옵션은 functional construction입니다. 캘린더 생성기의 예는 this blog post을 참조하십시오. 당신은 System.Web.UI.HtmlControls 네임 스페이스의 클래스를 사용할 수

var input = new XElement("input", 
    new XAttribute("type", "checkbox"), 
    new XAttribute("name", "somename")); 

return input.ToString(); 
2

: 귀하의 경우

, 당신의 HTML을가 생성 될 수있다. 그런 다음 RenderControl을 사용하여 html 콘텐츠를 생성 할 수 있습니다.

HtmlInputCheckBox box = new HtmlInputCheckBox(); 

StringBuilder sb = new StringBuilder(); 
using(StringWriter sw = new StringWriter(sb)) 
using(HtmlTextWriter htw = new HtmlTextWriter(sw)) 
{ 
    box.RenderControl(htw); 
} 
string html = sb.ToString(); 
+0

이것은 좋은 해결책 인 것 같지만 ASP.NET에 포함 된 HtmlControls의 "무거운"특성에 대해 우려하고 있습니다. 나는 ASP.NET WebForms (나는 ASP.NET MVC를 선호한다)에 대한 편견을 가지고있다. 그래도 정말 당신의 의견을 주셔서 감사합니다. –

+0

사실 나는 당신 = = –

0

HtmlTextWriter에는 "WriteStartTag"및 "WriteEndTag"와 같은 기호가 포함되어 있습니다.이 태그는 제대로 구성된 HTML을 쉽게 만들 수 있습니다.

기본적으로 태그 이름과 특성을 HtmlTextWriter에 전달하고 적절한 HTML을 생성하고 WriteEndTag를 사용하여 적절히 닫습니다.

이 코드를 강력한 형식의 클래스로 래핑하는 미리 작성된 HTMLControls를 사용할 수도 있습니다.

0

System.Xml도 사용하는 것이 좋습니다. 이를 사용하면 HTML이 XHTML과 호환된다는 것을 거의 보장 할 수 있습니다.

관련 문제