2011-08-30 25 views
16

Tôi đặt câu lệnh biểu mẫu bắt đầu/kết thúc trong trang bố cục để tôi không phải lặp lại nó trên một vài trang. Dưới đây là một phiên bản đơn giản của mã.là nó có thể làm tổ một hình thức bên trong khác trong dao cạo?

@using(Html.BeginForm()) 
{ 
    @RenderBody() 

    <input type = "submit" name = "nextButton" value = "Next-->" /> 
} 

Mọi thứ đang hoạt động tốt. Rất tiếc, tôi có một trang có một số nút "Xóa". Tôi muốn tạo một biểu mẫu cho mỗi nút xóa để nó có thể gửi id của mục để xóa lại cho bộ điều khiển.

Tôi có thể làm điều đó khi biết rằng có một biểu mẫu khác trên đó không?

Cảm ơn vì đã giúp

+0

Thú vị .. "Tôi đặt câu lệnh biểu mẫu bắt đầu/kết thúc trong trang bố cục ..." Có vẻ như bạn là một bước trên đường dẫn tạo lại biểu mẫu web. ;) – NotMe

+0

@Chris Sống động: Vui nhộn ??? Vâng, với tất cả TagBuilder tôi phải giải quyết, tôi không biết phải làm gì khác. – Richard77

Trả lời

20

Như Mrchief nói, các thông số HTML cấm các hình thức lồng nhau. Kể từ khi MVC chỉ tạo ra HTML tiêu chuẩn, bạn phải làm việc trong khuôn khổ của spec.

Tại sao không chỉ tạo hai bố cục chính và sử dụng biểu mẫu dựa trên hầu hết thời gian, nhưng sử dụng biểu mẫu không có biểu mẫu khi bạn cần kiểm soát nhiều hơn các biểu mẫu được nhúng.

Đây là lý do tại sao bạn thực sự chỉ nên sử dụng biểu mẫu chính xác ở nơi cần thiết, không chỉ ở khắp mọi nơi.

+0

Thực ra tôi đã gần gũi hơn với những gì bạn vừa đề xuất. Tôi chỉ không làm cho trang đó kế thừa từ Bố cục và nó hoạt động. Nhưng tôi phải sao chép/dán mọi thứ từ bố cục đến trang có nghĩa vụ chứa tất cả các nút xóa. Nhưng tôi sẽ có một bố trí khác như bạn đã đề xuất. – Richard77

+1

@ Richard77 - Lưu ý rằng bạn cũng có thể lồng ghép * bố cục *. Vì vậy, bạn có thể có bố trí tiêu chuẩn của bạn, hình thức sans. Sau đó, bạn có thể có bố cục khác sử dụng trang đầu tiên làm bố cục, nhưng bao gồm biểu mẫu. Sau đó, bạn có thể chọn tạo bố cục cho các trang khách hàng của mình. Bằng cách này, bạn không phải lặp lại mã. –

8

Đỗ lưu ý rằng làm tổ của hình thức không được phép theo W3 specs

Mọi hình thức phải được kèm theo trong một yếu tố MẪU. Có thể có một số biểu mẫu trong một tài liệu, nhưng phần tử MẪU không thể là lồng nhau.

Có một bài viết xen kẽ về cảnh báo về các hình thức làm tổ here.

Trong trường hợp này, tốt hơn là tạo một form cho mỗi nút thay vì có một biểu mẫu duy nhất.

Biểu mẫu web ASP.Net đã hạn chế bạn không có nhiều biểu mẫu trên trang bằng cách sử dụng thuộc tính runat=server (và khung đảm bảo rằng mỗi trang chỉ được phép một trang). MVC forms là HTML thuần túy để bạn có thể có nhiều trong số chúng.

Các vấn đề liên quan