2009-06-01 56 views
8

Tôi đã tự hỏi: có cách nào để tạo các tệp HTML theo lập trình trong C# như bạn có thể làm với XML không? Mine là một ứng dụng giao diện điều khiển, vì vậy có thể một số tùy chọn không có sẵn. Về cơ bản, tôi muốn làm một cái gì đó thông minh hơn là chỉ xây dựng một chuỗi lớn.Tạo trang web HTML theo lập trình trong C#

kịch bản có thể xảy ra:

Thay vì viết:

 string html="<html><head>Blah</head><body>{0}</html>", myotherstring 

Tôi muốn làm việc như trong XML

 XmlTextWriter w = new XmlTextWriter(xml_file_path + xml_file_name, 
             System.Text.Encoding.UTF8); 

    w.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'"); 

    // construct xml 
    XmlElement root = xmlDoc.CreateElement("element"); 

    ... 

    xmlDoc.Save(w); 
    w.Close(); 

Xin lỗi cho câu hỏi ngây thơ.

+0

ý nghĩa thông minh hơn là gì? Bạn có thể mô tả kịch bản? – shahkalpesh

+0

Cảm ơn, tôi đã có cùng một câu hỏi. –

Trả lời

6

Bạn có thể sử dụng NVelocity. Nó là một cổng .Net của hệ thống khuôn mẫu Velocity của Java. API sẽ không giống với XmlWriter. Thay vào đó, bạn sẽ viết một tệp văn bản bằng một ngôn ngữ kịch bản đơn giản, đặt các đối tượng của bạn vào một 'bối cảnh' và sau đó hợp nhất mẫu và ngữ cảnh để tạo tệp HTML.

  1. NVelocity
  2. Velocity Syntax Guide
+0

Than ôi, các liên kết bị hỏng. –

0

Những gì tôi đã làm một vài tháng trở lại, tôi đã có một tập tin asp.net (aspx) được lưu dưới dạng mẫu trong tệp văn bản, bất cứ khi nào người dùng cần trang mới, tôi sẽ sao chép mẫu đó vào thư mục người dùng được chỉ định , thay đổi phần mở rộng .txt thành .aspx và lập trình thêm một vài tùy chọn tùy thuộc vào nhu cầu của người dùng. Đó là một trang đơn giản mặc dù. Tất nhiên, bạn càng phức tạp, mã càng phức tạp.

7

Đừng quên: Bạn có thể tạo XHTML chỉ dễ dàng như XML đơn giản bằng cách sử dụng cách tiếp cận XmlTextWriter.

+0

+1 cho điều này. Nhưng đối với vấn đề hiện tại của tôi, tôi thấy NVelocity đã gặp mục đích của tôi một cách tuyệt vời. –

2

Bạn có thể sử dụng một số thư viện nguồn mở của bên thứ ba để tạo HTML được xác minh đã đánh mạnh (X), chẳng hạn như CityLizard Framework hoặc Sharp DOM.

Ví dụ

html 
    [head 
     [title["Title of the page"]] 
     [meta_(
      content: "text/html;charset=UTF-8", 
      http_equiv: "Content-Type") 
     ] 
     [link_(href: "css/style.css", rel: "stylesheet", type: "text/css")] 
     [script_(type: "text/javascript", src: "/JavaScript/jquery-1.4.2.min.js")] 
    ] 
    [body 
     [div 
      [h1["Test Form to Test"]] 
      [form_(action: "post", id: "Form1") 
       [div 
        [label["Parameter"]] 
        [input_(type: "text", value: "Enter value")] 
        [input_(type: "submit", value: "Submit!")] 
       ] 
      ] 
      [div 
       [p["Textual description of the footer"]] 
       [a_(href: "http://google.com/") 
        [span["You can find us here"]] 
       ] 
       [div["Another nested container"]] 
      ] 
     ] 
    ]; 
2

Tôi nhận ra rằng câu hỏi này là cũ, tuy nhiên việc phát hành gần đây của công cụ xem 3 Razor ASP.Net MVC hiện cho phép bạn tùy chọn để sử dụng công cụ này cùng xem Razor để tạo HTML Cho bất kỳ mục đích nào.

Xem Hosting Razor outside of ASP.Net để biết hướng dẫn về cách thực hiện việc này.

+0

Tôi đã xem tệp zip và có vẻ như không nhiều. Nó chắc chắn không tạo ra bất kỳ html nào. – CarneyCode

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