如何使用HtmlHelper.BeginForm()工作?

Jos*_*ose 8 asp.net-mvc html-helper

好的,我想知道如何

<% using (Html.BeginForm()) { %>
  <input type="text" name="id"/>
<% } %>
Run Code Online (Sandbox Code Playgroud)

生产

<form>
  <input type="text" name="id"/>
</form>
Run Code Online (Sandbox Code Playgroud)

即如何在最后添加</form>?我查看了codeplex并没有在htmlhelper中找到它.有一个EndForm方法,但上面如何知道调用它?

原因是我想创建一个htmlhelper扩展,但不知道如何在使用结束时关闭.

任何帮助,将不胜感激 :)

SLa*_*aks 16

BeginForm返回一个IDisposable调用EndFormDispose.

编写时using(Html.BeginForm()) { ... },编译器会生成一个finally调用块,Dispose然后调用EndForm并关闭<form>标记.

您可以通过编写自己的实现类来复制此效果IDisposable.

  • +1,但为了迂腐,`EndForm()`技术上调用`Dispose()`(写出`</ form>`),而不是逆;) (2认同)