2013-02-18 88 views
11

Đối với ứng dụng ASP.NET MVC, ai đó có thể giải thích cho tôi tại sao các cuộc gọi đến Html.BeginForm bắt đầu với tuyên bố @using?ASP.NET MVC Razor, Html.BeginForm, sử dụng câu lệnh

Ví dụ -

@using (Html.BeginForm()) {

//Stuff in the form 

}

Tôi nghĩ @using tuyên bố là dành cho bao gồm cả không gian tên. Cảm ơn!

Trả lời

16

Using Statement cung cấp cú pháp thuận tiện để đảm bảo sử dụng đúng đối tượng IDisposable. Vì trình trợ giúp BeginForm triển khai giao diện IDisposable, bạn có thể sử dụng từ khóa using với nó. Trong trường hợp đó, phương thức sẽ hiển thị thẻ đóng </form> ở cuối câu lệnh. Bạn cũng có thể sử dụng mà không cần BeginFormusing khối, nhưng sau đó bạn cần phải đánh dấu sự kết thúc của hình thức:

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

using làm báo cáo được sử dụng để xác định phạm vi đối tượng IDisposable.

@using (var form = Html.BeginForm()) { 
    //Stuff in the form 

} // here Dispose on form is invoked. 

Html.BeginForm trở lại đối tượng đó trong dispose làm thẻ đóng cho một hình thức: </form>

using cho bao gồm cả không gian tên là chỉ thị.

1

Khi bạn sử dụng using với Html.BeginForm, các helper phát ra thẻ đóng và thẻ mở trong suốt cuộc gọi đến BeginForm và cũng là cuộc gọi để trả về đối tượng đang thực thi IDisposable.

Khi thực thi trở về cuối (Đóng ngoặc nhọn) bằng câu lệnh trong khung nhìn, trình trợ giúp phát ra thẻ biểu mẫu đóng. Mã số using đơn giản và thanh lịch hơn.

Không bắt buộc là bạn nên sử dụng using kết hợp với Html.BeginForm.

Bạn cũng có thể sử dụng

@{ Html.BeginForm(); } 
    <input type="text" id="txtQuery"/> 
    <input type="submit" value="submit"/> 
@{ Html.EndForm(); } 
Các vấn đề liên quan