2012-04-13 14 views
8

Tôi đã kiểm tra trang web của tôi xác nhận html trong w3.org và đã nhận lỗi nàyxác nhận W3C cho server-side mẫu thẻ

Xấu giá trị cho hành động thuộc tính vào mẫu yếu tố: Phải không trống.

nhưng biểu mẫu của tôi là biểu mẫu phía máy chủ asp.net và tôi không thể đặt phân phối hành động.

Tôi làm cách nào để giải quyết lỗi này?

Trả lời

11

Đây là một bài cũ, nhưng để tham khảo trong tương lai trong ASP.NET ai có thể làm như sau để tránh hành động trống thuộc tính:

<form action="#" runat="server"> 

này sẽ xác nhận với W3C và không yêu cầu bạn phải làm bất cứ đặc biệt mã hóa để phát hiện url trang bạn hiện đang truy cập.

+0

Thực ra, đây là vấn đề. Nếu bạn cố gắng thực hiện một bài đăng với giải pháp action = "#", bạn sẽ gặp lỗi phía máy chủ HTTP. – abegosum

+0

@abegosum Tôi đã sử dụng giải pháp này trong một thời gian trong ASP.NET mà không có vấn đề được báo cáo của bạn, bất kỳ ý tưởng về lý do tại sao điều này xảy ra? –

+0

Có thể là sự cố với phiên bản hoặc cài đặt của IIS (Tôi nghi ngờ đó là cài đặt bảo mật để ngăn chặn một số loại tệp tập lệnh nhất định)? Trang của bạn có đang thực hiện bất kỳ postback nào không? – abegosum

2

Bỏ thuộc tính action. Theo bản nháp HTML5, không bắt buộc, nhưng nếu có, giá trị của nó không được để trống. Tham chiếu: Bản nháp HTML5 WHATWG, description of action attribute.

+1

Trong ASP.NET bạn không thể bỏ qua các thuộc tính hành động, nếu bạn mã

nó sẽ render như ; nó chỉ là cách nó hoạt động. Xem phản hồi của tôi để có giải pháp tốt hơn. –

+2

Mỗi khi tôi học một cái gì đó mới về ASP.NET tôi ghét nó một số chi tiết. – Quentin

7
form1.Action = Request.Url.AbsoluteUri; 

này đang làm việc cho tôi