我想知道,是否可以创建自己的帮助定义,使用?例如以下创建表单:
using (Html.BeginForm(params)) { }
我想要这样做自己的帮手.所以我想做一个简单的例子
using(Tablehelper.Begintable(id) { <th>content etc<th> }
这将在我看来输出
<table> <th>content etc<th> </table>
这可能吗?如果是,怎么样?
谢谢
解决方法
当然可以:
public static class HtmlExtensions { private class Table : IDisposable { private readonly TextWriter _writer; public Table(TextWriter writer) { _writer = writer; } public void Dispose() { _writer.Write("</table>"); } } public static IDisposable BeginTable(this HtmlHelper html,string id) { var writer = html.ViewContext.Writer; writer.Write(string.Format("<table id=\"{0}\">",id)); return new Table(writer); } }
接着:
@using(Html.BeginTable("abc")) { @:<th>content etc<th> }
将产生:
<table id="abc"> <th>content etc<th> </table>
我也建议你阅读约Templated Razor Delegates.