Tôi có trang web biểu mẫu web ASP.net, với biểu mẫu máy chủ trong trang chính vì tất cả các trang đều yêu cầu nó.ASP.net không điền hành động = "" của mẫu máy chủ khi được phát hành
Khi gỡ lỗi tham số action
được điền vào thời gian chạy cùng với id
, nhưng khi được triển khai trên máy chủ của tôi với IIS7 nó không xuất hiện ... nhưng vẫn hoạt động. Nó không gây ra các vấn đề về trang web, nhưng nó làm cho việc xác thực W3C HTML5 của tôi thất bại, vì nó cần được phổ biến.
nguồn gỡ lỗi:
<form method="post" action="index.aspx" id="aspnetForm">
Sống nguồn:
<form method="post" action="" id="aspnetForm">
khai Form trong masterpage:
<form runat="server">
.. some divs
</form>
tôi biết toàn bộ thẻ form doesnt có ID/hành động được xác định vv, vì ASP cấu hình mặc định tại thời gian chạy và đó là tốt, mặc dù đối với một số lý do nó messes lên trên máy chủ của tôi. Tôi đã thử sử dụng các action="<% Path etc %>"
, để có được tên đường dẫn nhưng nó không hoạt động.
Tôi đang làm gì sai? Tôi có thiếu thứ gì đó hay chỉ là một thói quen xấu để sử dụng một biểu mẫu trong một trang chủ?
Cảm ơn.
Cập nhật
Ok, để giải quyết vấn đề này chỉ ra trong câu trả lời tôi chỉ thiết lập các Form.Action trên Masterpage Page_Load, cuối cùng đã nhận rằng ánh sáng màu xanh lá cây W3C!
Note: Tôi đang sử dụng Intelligencia Ổ ghi, nhưng bạn có thể kéo URL sử dụng Request.Url
public partial class myMasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Form.Action = Intelligencia.UrlRewriter.RewriterHttpModule.RawUrl;
}
}
sẽ thay đổi nó từ '' để
Thẻ máy chủ không xác định 'asp: Form'. – tutts
'Page.Form.Action = Request.Url.ToString();' làm việc cho tôi, không có Intelligencia, bên trong Page_Load. – manafire