2010-05-26 17 views
17

Tôi đang sử dụng trang chủ và khi tôi chạy trang này, nó cho thấy các thông báo lỗi sau:một trang có thể chỉ có một server-side mẫu thẻ

một trang có thể chỉ có thẻ hình thức một server-side

Làm cách nào để giải quyết vấn đề này?

+2

Đó là một phần nội tại của các biểu mẫu web ASP.NET chỉ có thể sử dụng một thẻ biểu mẫu phía máy chủ trên trang được hiển thị. Bạn có thể có các biểu mẫu khác, chúng không thể có thuộc tính 'runat =" server "' trên chúng, IIRC. –

+1

Xóa hoàn toàn các thẻ khỏi trang chính – ahmed

+0

@RussCam Mẫu tốt là thẻ biểu mẫu *** trong _Master_ hoặc trong _Nested contentPage_? – Kiquenet

Trả lời

3

Chỉ sử dụng một thẻ biểu mẫu phía máy chủ.

Kiểm tra trang chính của bạn cho <form runat="server"> - chỉ nên có một trang.

Tại sao bạn cần nhiều hơn một?

+0

trang này chỉ chứa chủ sở hữu contantplace tôi đã tạo trang mới và chạy trang này sau khi lỗi hiển thị này. –

+0

@Manoj Wadhwani - Đảm bảo cả hai trang chỉ có một thẻ biểu mẫu phía máy chủ. – Oded

9

Có vẻ như bạn có thẻ biểu mẫu trong Trang chính và trong Trang đang ném lỗi.

Bạn chỉ có thể có một thẻ.

4

Liệu trang của bạn chứa những

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" 
Runat="Server"> 
</asp:content> 

thẻ, và tất cả đều điều khiển của bạn bên trong những? Bạn chỉ nên có các mẫu trong MasterPage.


Dưới đây là một số hiểu biết và đề nghị của tôi:

Html phần tử có thể được đưa vào cơ thể của trang html và trang html không hỗ trợ nhiều yếu tố, tuy nhiên họ không thể được lồng vào nhau mỗi khác , bạn có thể tìm thấy những mô tả chi tiết từ W3C html đặc điểm kỹ thuật:

Yếu tố MẪU

http://www.w3.org/MarkUp/html3/forms.html

Và đối với trang biểu mẫu web ASP.NET, nó dựa trên một phần phía máy chủ phần tử chứa tất cả các điều khiển bên trong nó, vì vậy nói chung chúng tôi không khuyên nên đặt nhiều phần tử. Tuy nhiên, đây vẫn là được hỗ trợ trong trang ASP.NET (trang chính) và tôi nghĩ rằng vấn đề trong trang chủ của bạn phải do yếu tố lồng nhau không được hỗ trợ và nhiều trong cùng một cấp phải ổn. Ví dụ:

Ngoài ra, nếu những gì bạn muốn thực hiện qua nhiều biểu mẫu chỉ làm cho trang đăng bài lên nhiều trang, tôi nghĩ bạn có thể xem xét sử dụng tính năng mới cho đăng bài trên trang trong ASP.NET 2.0. Điều này có thể giúp chúng tôi sử dụng các nút điều khiển để đăng lại các trang khác nhau mà không cần phải có biểu mẫu nhiều trang trên trang:

Đăng trang chéo trong ASP.Các trang Web NET

http://msdn2.microsoft.com/en-us/lib...39(VS.80).aspx

http://msdn2.microsoft.com/en-us/lib...40(VS.80).aspx

+2

Liên kết của bạn bị hỏng. – Four

15

Tôi nghĩ bạn đã làm như thế này:

<asp:Content ID="Content2" ContentPlaceHolderID="MasterContent" runat="server"> 
    <form id="form1" runat="server"> 

</form> 
</asp:Content> 

Thẻ form là không cần thiết. bởi vì bạn đã có cùng một thẻ trong trang chính.

Vì vậy, bạn chỉ cần xóa nội dung đó và nó sẽ hoạt động.

+0

trang cái của bạn đã có sẵn một biểu mẫu. biểu mẫu lồng nhau không được phép –

+0

Mẫu tốt là thẻ biểu mẫu *** trong _Master_ hoặc trong _Nested contentPage_? – Kiquenet

0

Đôi khi bạn làm cho trang hiện tại như thể hiện trong mã dưới đây sẽ tạo ra các lỗi tương tự

StringWriter str_wrt = new StringWriter(); 
HtmlTextWriter html_wrt = new HtmlTextWriter(str_wrt); 
Page.RenderControl(html_wrt); 
String HTML = str_wrt.ToString(); 

vậy làm thế nào chúng ta có thể sắp xếp nó?

+0

đây là vấn đề chính xác của tôi bạn đã tìm thấy bất cứ điều gì để sửa lỗi này? – asdasdad

+0

Đây cũng là vấn đề ở đây. – CodeIt

0

Trang chủ của bạn cũng có thể có thẻ Biểu mẫu.

Nếu bạn muốn thực hiện nhiều thẻ Biểu mẫu, hãy xóa thuộc tính runat = "server" và sử dụng thẻ đầu vào HTML thuần túy thay thế.

+0

Mẫu tốt là thẻ biểu mẫu *** trong _Master_ hoặc trong _Nested contentPage_? – Kiquenet

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