2011-01-25 22 views
11

Thật lạ lùng khi tôi gặp sự cố:Asp.net: không thể gỡ lỗi vấn đề này: Sys.ArgumentNullException: Giá trị không thể rỗng. Tên thông số: các yếu tố

Sys.ArgumentNullException: Giá trị không được rỗng. Tên tham số: phần tử.

Sự cố này chỉ xảy ra trong IE.

chi tiết:

  • ScriptResource.axd = Line: 4868
  • Code: 0 - Char: 12

chi tiết lỗi trang web

User Agent: Mozilla/4.0 (compatible ; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Trung tâm phương tiện truyền thông PC 6.0; InfoPath.2; .NET4.0C;. NET4.0E; AskTbBT4/5.8.0.12304) Dấu thời gian: Thứ Ba, ngày 25 tháng 1 năm 2011 11:24:42 UTC

Thông báo: Sys.ArgumentNullException: Giá trị không được rỗng. Parameter tên: yếu tố Line: 4868 Char: 12 Code: 0 URI: http://asdfsdf/ScriptResource.axd?d=7NwOnZl2VMauVPybpy_0vvP2zsCf0g8YK4dd3SkNMq873HwvoDhnE7rPvjFZwFLM0&t=11e661nl.js

Cảm ơn trước!

+0

Bạn có thể hiển thị một số mã liên quan đến các yếu tố tham số không? Lỗi nói biến phần tử của bạn là null hoặc không xác định. Hiển thị dòng mã như thế nào bạn đang nhận được các yếu tố? –

+0

Bạn có đang sử dụng bất kỳ điều khiển AJAX nào không? Bộ công cụ kiểm soát Ajax? Kiểm soát ASP.NET AJAX của bên thứ ba? –

+0

Tôi có cùng một vấn đề. Nó không thể phủ nhận một số kết hợp của UpdatePanel và ajaxcontroltoolkit. – UmaN

Trả lời

15

Tôi có cùng một vấn đề ...

Đó là không thể phủ nhận một sự kết hợp của UpdatePanel và AjaxControlToolkit ...

Edit:

Không nhìn thấy câu hỏi này là bao nhiêu tuổi. Có lẽ nó không liên quan nữa ... Nhưng trong trường hợp của tôi, tôi đã gặp phải vấn đề này ngay bây giờ vào hai lần lặp lại và tìm thấy hai giải pháp khác nhau. Sự thay đổi đầu tiên liên quan đến các bảng cập nhật, một modalpopupextender và kiểm soát validationsummary. Vấn đề là các validationsummary đã không xuất một dấu chấm phẩy ở phần cuối của javascript được tạo ra. Giải pháp là tạo điều khiển mini của riêng bạn kế thừa từ ValidationSummary và thực hiện điều này khi hiển thị trước:

protected override void OnPreRender(EventArgs e) 
    { 
     base.OnPreRender(e); 

     ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), this.ClientID, ";", true); 
    } 

Chỉ cần thêm dấu chấm phẩy vào javascript. Điều đó giải quyết nó.

Tôi không chắc liệu mình có gặp phải sự cố tương tự nữa không, nhưng trang sự cố của tôi lại có bảng cập nhật, kiểm soát bộ công cụ kiểm soát ajaxcontrol (Modalpopupextender) và tóm tắt validaiton. Bởi vì tôi đã quên giải pháp trước đây của mình, tôi đã thử một giải pháp khác mà tôi tìm thấy trên google; thiết lập

ScriptMode="Release" 

trên trình quản lý tập lệnh trong trang chính của tôi. Điều này làm việc. Không chắc chắn liệu tôi có nên hạnh phúc hay không với điều này ... Có vẻ như phiên bản gỡ lỗi spits ra javascript mà không hoạt động khi kết hợp với một số điều khiển asp.net khác.

+0

tôi đã thử điều này, lỗi đó đã được sửa và lỗi mới hiển thị "không xác định là null hoặc không phải là đối tượng" trong srciptresource.axd trong IE8 – Syed

+1

Cảm ơn @UmaN Bạn đã lưu ngày của tôi. Nhưng tôi nghi ngờ rằng chế độ phát hành đang loại bỏ khả năng gỡ rối trình duyệt. Nhưng, hay, ứng dụng của tôi hiện đang hoạt động. Vì vậy, tôi để điều này cho sau này để điều tra. –

+0

điều này giải quyết được vấn đề của tôi. – greg

26

Thay đổi ScriptMode thành Release đã sửa lỗi này cho tôi.

<asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release"></asp:ScriptManager>

+0

Bạn là một anh hùng thực sự! –

2

Bạn cũng sẽ nhận được lỗi này nếu bạn đặt Visible = False trên sự kiểm soát quy định tại các CancelControlID của một ModalPopupExtender. Nếu bạn có một đường dẫn mã nơi bạn cần phải ẩn các CancelControlID, chỉ cần chắc chắn để thiết lập các CancelControlID = "" trong tình huống đó. Đó là vấn đề tôi chạy vào ...

1

happend với tôi, nơi tôi đã tạo ra một bảng cập nhật trong một điều khiển máy chủ tùy chỉnh và không sử dụng RenderControl() sau đó

protected override void RenderContents(HtmlTextWriter writer) 
{ 
    myUpdatePanel.RenderControl(writer); 
} 
0

Trong trường hợp bạn đang sử dụng ReportViewer trên trang này có thể hữu ích.

Đặt compilation debug="false" trong web.config.

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