【问题标题】:ASP.NET MVC Razor, Html.BeginForm, using statementASP.NET MVC Razor, Html.BeginForm, using 语句
【发布时间】:2013-02-18 11:54:47
【问题描述】:

对于 ASP.NET MVC 应用程序,有人可以向我解释为什么对 Html.BeginForm 的调用以语句 @using 开头吗?

例子-

@using (Html.BeginForm()) {

   //Stuff in the form

}

我认为@using 语句用于包含命名空间。 谢谢!

【问题讨论】:

    标签: asp.net-mvc razor


    【解决方案1】:

    Using Statement 提供了一种方便的语法,可确保正确使用IDisposableobjects。由于BeginForm 助手实现了IDisposable 接口,您可以使用using 关键字。在这种情况下,该方法在语句末尾呈现结束 </form> 标记。您也可以使用 BeginForm 而不使用 using 块,但是您需要标记表单的结尾:

    @{ Html.BeginForm(); }
        //Stuff in the form
    @{ Html.EndForm(); }
    

    【讨论】:

      【解决方案2】:

      using 作为语句用于定义 IDisposable 对象的范围。

      @using (var form = Html.BeginForm()) {
          //Stuff in the form
      
      } // here Dispose on form is invoked.
      

      Html.BeginForm 返回对象,在 dispose 期间为表单呈现结束标记:</form>

      using 用于包含命名空间是指令。

      【讨论】:

        【解决方案3】:

        当您将using 与 Html.BeginForm 一起使用时,助手会在调用 BeginForm 以及调用实现 IDisposable 的返回对象期间发出结束标记和开始标记。

        当执行返回到视图中的(关闭花括号)语句的末尾时,助手发出关闭表单标记。 using 代码更简洁优雅。

        您不必将usingHtml.BeginForm 结合使用。

        你也可以使用

        @{ Html.BeginForm(); }
           <input type="text" id="txtQuery"/>
           <input type="submit" value="submit"/>
        @{ Html.EndForm(); }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-06-02
          • 2012-09-15
          • 2010-11-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-01
          相关资源
          最近更新 更多