c# 视图 输出html代码,基于HSharp使用C#对象建立并输出HTML(示例代码)

在C#代码中有的时候我们需要返回视图。一般为此往往要专门建立cshtml文档。如果直接在代码中写HTML往往又容易产生语法错误。如果有一种方式能够高效的构建正确的HTML文档,并有效借助C#的强类型特性,那么在需要输出HTML的时候会大大提升效率。这对于ASP.Net和ASP.Net MVC中就可以在控制器中直接渲染生成视图。对于复杂的视图逻辑也可以转移到控制器中完成。

找了很久,我还是找到了一个比较可行的方法。大概方法是用到了一个叫做HSharp的库。用来以一种弱类型语言的处理方式来应用在C#,处理HTML。能够反序列化和序列化HTML,也不需要建立对应的C#类。

安装:

PM> Install-Package Obisoft.HSharp

efaaee4ab2d914baf0bb55e1c9421d61.png

仔细观察它,发现它有

Document.GenerateHTML()

以及

public static string SerializeHtml(HDoc Document)

两个方式来序列化。开始我纳闷很久这有什么区别,在Github上翻了翻代码发现其实是一样的。

但这两种方式都需要构建HDoc文档。还好构建不算太难。

var Document = newHDoc(DocumentOptions.BasicHTML);

Document["html"]["body"].AddChild("div");

Document["html"]["body"]["div"].AddChild("a", new HProp("href", "/#"));

Document["html"]["body"]["div"].AddChild("table");

Document["html"]["body"]["div"]["table"].AddChildren(new HTag("tr"),new HTag("tr", "SomeText"),new HTag("tr", new HTag("td")));var Result =Document.GenerateHTML();

Console.WriteLine(Result);

上面的代码中构建了基本HTML,然后在Body下面增加了Div。并在Div里增加了a和table。

同时在Table里增加里三个TR

输出如下:

Example

有的时候想,既然这个库这么屌,不如再封装一层,做一个可以让用户在不懂HTML的情况下生产HTML的工具。

准备再研究研究HSHarp这个库。据说还可以反序列化HTML

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值