代码改变世界

asp.net MVC中使用自定义HtmlForm控件动态生成表单

  zhoujie  阅读(5161)  评论(6编辑  收藏  举报

经测试System.Web.UI.HtmlControls下的HtmlForm类,也就是我们在传统的asp.net中使用的Form表单对象,不适合动态生成Html代码。

于是自定义了一个简单的HtmlForm容器控件,只需要几行代码。看来Asp.net在封装Html元素方面还是很有优势的,微软为我们定义了

大量的基础结构,很容易扩展使用。

复制代码
public class myHtmlForm:HtmlContainerControl
{
public myHtmlForm()
:
base("form")
{

this.Attributes.Add("method", "post");
}

public string Action
{
set
{
Attributes.Add(
"action", value);
}
}
}
复制代码

使用很简单,直接new,然后向Controls集合中添加控件即可。

myHtmlForm form = new myHtmlForm();
form.ID
= "myform";
form.Action
= "test.aspx";
HtmlInputHidden hidf
= new HtmlInputHidden();
hidf.ID
= hidf.Name = "hidden";
form.Controls.Add(hidf);

最后在View中,输出HTML代码到响应流。

form.RendControl(Writer);

结论:

动态生成HTML表单就是这么简单明了。我以前可是自己拼接过HTML,然后Write啊。善于利用框架提供的类可以有效的提高开放效率,

并且使代码的可读性良好。尤其是在做表格控件时,善用System.Web.UI.WebControls.Table控件,会很有帮助。很想知道PHP或其他

语言是否也有这些好用的基础设施呢?

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示