Rus*_*ova 3 asp.net-mvc asp.net-mvc-3
在Asp.net MVC3中,当您编写下面的代码时,它会自动生成包装html
@using (Html.BeginForm()) {
@Html.ValidationMessageFor(model => model.Text)
}
Run Code Online (Sandbox Code Playgroud)
它生成以下格式的代码,
<form method="post" action="/Feeds">
<!-- Fields Here -->
</form>
Run Code Online (Sandbox Code Playgroud)
我的问题在 开始和结束时@using (Html.BeginForm())
自动添加<form>
标签,我怎样才能创建类似我自己的标签.
@using (Html.BeginMYCUSTOMDIV())
{
I am text inside div
}
Run Code Online (Sandbox Code Playgroud)
预期的生成输出
<div class="customDivClass">
I am text inside div
</div>
Run Code Online (Sandbox Code Playgroud)
一些事情:
public class MyDiv : IDisposable
{
private readonly TextWriter _writer;
public MyDiv(TextWriter writer)
{
_writer = writer;
}
public void Dispose()
{
_writer.WriteLine("</div>");
}
}
public static class MyExtensions
{
public static MyDiv BeginMYCUSTOMDIV(this HtmlHelper htmlHelper)
{
var div = new TagBuilder("div");
div.AddCssClass("customDivClass");
htmlHelper.ViewContext.Writer.WriteLine(div.ToString(TagRenderMode.StartTag));
return new MyDiv(htmlHelper.ViewContext.Writer);
}
}
Run Code Online (Sandbox Code Playgroud)
并在视图中:
@using (Html.BeginMYCUSTOMDIV())
{
<span>Hello</span>
}
Run Code Online (Sandbox Code Playgroud)
产生:
<div class="customDivClass">
<span>Hello</span>
</div>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1952 次 |
最近记录: |