首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展的Html.BeginForm()类型

扩展的Html.BeginForm()类型
EN

Stack Overflow用户
提问于 2009-10-30 17:05:07
回答 2查看 1.2K关注 0票数 6

有人知道创建一个行为类似于..的自定义HtmlHelperextension方法的语法吗?

代码语言:javascript
复制
<% using (Html.BeginForm()) {%>

<p>Loads of html stuff here </p>

<% } %>

我在想一些关于……的东西。

有什么想法吗?

干杯,

ETFairfax

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-30 17:12:37

您需要创建一个实现IDisposable接口的类,并从您的HtmlHelper返回它。

代码语言:javascript
复制
public static class HtmlHelperTableExtensions {
    private class TableRenderer : IDisposable {
        HtmlHelper html;
        public TableRenderer(HtmlHelper html) {
           this.html = html;
        }
        public void Dispose() {
           HtmlHelperTableExtensions.EndTable(html);
        }
    }
    public static IDisposable BeginTable(this HtmlHelper html) {
        // print begin table here...
        return new TableRenderer(html);
    }
    public static void EndTable(this HtmlHelper html) {
        // print end table here...
    }
}
票数 8
EN

Stack Overflow用户

发布于 2009-10-30 17:12:06

你需要有一个类似这样的方法:

代码语言:javascript
复制
public static IDisposable BeginTable(this HtmlHelper html, ...)
{
    // write the start of the table here

    return new EndTableWriter();
}

其中,EndTableWriter如下所示:

代码语言:javascript
复制
private class EndTableWriter : IDisposable
{
    public void Dispose()
    {
        // write the end of the table here
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1648711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档