そのため、未処理の例外が発生したときにメールが送信されるように、Global.asax ファイルを設定しました。ユーザーには表示されない例外を含む電子メールを受け取り、コードはクライアント側で正常に動作しているように見え、ページが読み込まれ、期待どおりに動作します。
aspx ファイルにこのコードがあり、役割に基づいたチェックボックス、または特定の文字で始まる顧客番号が表示されます...
<% if (Roles.IsUserInRole("Admin") ||
txtAccountNo.Text.Substring(0, 2) == "UK" ||
txtAccountNo.Text.Substring(0, 2) == "FR" ||
txtAccountNo.Text.Substring(0, 2) == "IT" ||
txtAccountNo.Text.Substring(0, 2) == "DK" ||
txtAccountNo.Text.Substring(0, 2) == "SE")
{ %>
<label for="chkExpressDelivery"><asp:Literal ID="Literal14" runat="server" Text="<%$ Resources:LocalizedText, fieldLabel_ExpressDelivery %>"></asp:Literal><span class="small"></span></label>
<asp:CheckBox ID="chkExpressDelivery" runat="server" Width="50px" CssClass="_checkbox _normalcheckbox" Text=" " />
<%} %>
現在、txtAccountNo は aspx.cs ファイルの Page_Load イベントのユーザー プロファイル プロパティから設定されています。
メールで受け取ったエラー メッセージ (クライアントには表示されません) は次のとおりです。
インデックスと長さは、文字列内の場所を参照する必要があります。パラメータ名: 長さ
私はエラーメッセージを理解しています.txtAccountNo.Textは基本的にそのコードが実行されたときに空であると言っています.
しかし、web.config ファイルでカスタム エラー メッセージを有効にすると、クライアントはカスタム エラー ページに誘導されますが、それがなければ、クライアントに関する限りエラーは発生しません。
このエラーを修正して、カスタム エラー ページを有効にするにはどうすればよいでしょうか。
これが理にかなっていることを願っています!さらに情報が必要な場合はお知らせください。
ありがとう
スチュアート
このコードは機能するようになりました...
<% if (txtAccountNo.Text.Length > 0 && (Roles.IsUserInRole("Admin") ||
txtAccountNo.Text.Substring(0, 2) == "UK" ||
txtAccountNo.Text.Substring(0, 2) == "FR" ||
txtAccountNo.Text.Substring(0, 2) == "IT" ||
txtAccountNo.Text.Substring(0, 2) == "DK" ||
txtAccountNo.Text.Substring(0, 2) == "SE"))
{ %>
<label for="chkExpressDelivery"><asp:Literal ID="Literal14" runat="server" Text="<%$ Resources:LocalizedText, fieldLabel_ExpressDelivery %>"></asp:Literal><span class="small"></span></label>
<asp:CheckBox ID="chkExpressDelivery" runat="server" Width="50px" CssClass="_checkbox _normalcheckbox" Text=" " />
<%} %>