首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC类BeginForm

MVC类BeginForm
EN

Stack Overflow用户
提问于 2014-08-06 09:00:36
回答 1查看 124关注 0票数 0

当我在MVC 4 Web项目中编写下面的代码时

代码语言:javascript
复制
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);
    }
}

我可以这样用,

代码语言:javascript
复制
@using(Html.BeginTable("abc"))
{
    @:<th>content etc</th>
}

但我不想用Html开始

举个例子,我想用这个项目,

代码语言:javascript
复制
@using(HtmlExtensions.BeginTable("abc"))
{
   @:<th>content etc</th>
}

我该如何解决这个问题?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-06 09:07:16

您必须添加HtmlHelper作为参数,因此您必须以某种方式获得对HtmlHelper的引用。例如,如果您在视图中:

代码语言:javascript
复制
@{
    var helper = Html
    HtmlExtensions.BeginTable(helper,"abc")
}

您可以通过调用new HtmlHelper(...)来创建一个新实例,但是必须提供所有参数,如ViewContext等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25156179

复制
相关文章

相似问题

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