2008-11-07 16 views
5

Tôi đang phát triển một nhà thiết kế biểu mẫu HTML cần tạo HTML tĩnh và hiển thị điều này cho người dùng. Tôi tiếp tục viết mã xấu xí như thế này:Trong C# 3.0, có bất kỳ lớp nào giúp tôi tạo html tĩnh không?

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

không có Là một tập hợp các lớp gõ mạnh mẽ rằng mô tả các yếu tố html và cho phép tôi viết mã như thay vì điều này:

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

Tôi chỉ có thể' t nghĩ về không gian tên chính xác để tìm kiếm cụm từ tìm kiếm này hoặc cụm từ tìm kiếm chính xác để sử dụng trong Google.

Trả lời

5

Vâng, nếu bạn tải về (mà bạn có thể sử dụng trong bất kỳ loại của dự án ... bao gồm các ứng dụng Console) ... sau đó bạn có thể sử dụng nhiều người giúp đỡ HTML ASP.NET MVC DLL của họ có.

+0

Tôi thích giải pháp này rất nhiều. Tôi có thể sẽ sử dụng cái này. Tôi không thể tin rằng tôi đã quên mất những người trợ giúp HTML MVC HTML. Cảm ơn! –

2

Một tùy chọn là sử dụng XElementfunctional construction. Xem this blog post để biết trình tạo lịch ví dụ.

Trong trường hợp của bạn, Html của bạn có thể được tạo ra với:

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

return input.ToString(); 
2

Bạn có thể sử dụng các lớp trong namespace System.Web.UI.HtmlControls. Sau đó, bạn có thể sử dụng RenderControl để tạo ra nội dung 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

Điều này có vẻ giống như một giải pháp tốt, tuy nhiên tôi chỉ quan tâm đến bản chất "nặng" của HtmlControls có trong ASP.NET. Tôi có rất nhiều sự xáo trộn cho ASP.NET WebForms (tôi thích ASP.NET MVC) mà có thể làm tổn hại tôi. Tôi thực sự đánh giá cao đầu vào của bạn mặc dù. –

+0

Thực ra, tôi đồng ý với bạn =) –

0

HtmlTextWriter chứa các tính năng như "WriteStartTag" và "WriteEndTag", có thể được sử dụng để tạo HTML được tạo đúng cách khá dễ dàng.

Về cơ bản, bạn chuyển thẻ tên và thuộc tính cho HtmlTextWriter, và nó tạo ra HTML thích hợp và sẽ đóng đúng với WriteEndTag.

Bạn cũng có thể sử dụng HTMLControls được viết sẵn bao bọc mã này thành các lớp được nhập mạnh mẽ.

0

Đồng thời xem xét sử dụng System.Xml. Bằng cách sử dụng nó, bạn gần như đảm bảo HTML của bạn là XHTML tuân thủ.

Các vấn đề liên quan