如何扩展MvcForm以便它不会生成表单标记?

时间:2015-06-29 03:16:34

标签: asp.net-mvc

我想为html beginform添加一个条件。 如果条件为假,我不希望生成表单标记。

与此代码类似:



        public static MvcHtmlString If(this MvcHtmlString value, bool evaluation)
        {
            return evaluation ? value : MvcHtmlString.Empty;
        }

1 个答案:

答案 0 :(得分:0)

我最近不得不为一次性功能做类似的事情。这是概念代码的证明,但它看起来像:

public class NoForm : IDisposable
{
  // Whatever this suppose to look like
  // but actually does nothing
  public void Dispose() { } 
}

在视图中:

@{
  IDisposable form;
  if (Model canShowForm)
  {
    form = Html.BeginForm(...);
  }
  else
  {
    form = new NoForm()
  }
}

@using (form)
{
  @* we might be in a form *@
}

显然这可以重构为HtmlHelper扩展方法,我还没有完成。

相关问题