Как отобразить содержимое файла generalerror.aspx.cs на странице generalerror.aspx?
Могу ли я спросить о том, почему выходные данные в GeneralError.aspx.cs не могут отображаться на странице GeneralError.aspx, пожалуйста?
Потому что я пытался изменить много методов в некоторых моих кодах ошибки приложения на основе поиска google (но не подходит), но не могу отобразить response.write (что я кодирую в GeneralError.aspx.cs) на GeneralError.aspx, но ничего не отображаю в GeneralError.aspx. Не могли бы вы помочь мне проверить и объяснить мои ошибки в нем и его решения, пожалуйста?
Что я уже пробовал:
I paste some these problems code here as below:
Для Ошибка Приложения.aspx-файл,
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ApplicationError.aspx.cs" Inherits="WebApplication1.ApplicationError" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Error Handling</title> </head> <body> <form id="form1" runat="server"> <div style="text-align:center"> <p style="width:60%; padding:30px 20px 30px 20px; border:solid 3px black"> <asp:TextBox ID="TextBox1" runat="server" Height="43px" Width="66px" Font-Bold="True" Font-Names="Comic Sans MS" Font-Size="X-Large"></asp:TextBox> <img alt="" src="images/Divide.jpg" style="height: 39px; width: 65px" /> <asp:TextBox ID="TextBox2" runat="server" Height="43px" Width="66px" Font-Bold="True" Font-Names="Comic Sans MS" Font-Size="X-Large"></asp:TextBox> <asp:ImageButton ID="EqualButton" runat="server" Height="44px" ImageUrl="~/images/EqualButton.jpg" Width="50px" onclick="EqualButton_Click" /> <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Names="Comic Sans MS" Font-Size="XX-Large" ForeColor="Blue" Text="?"></asp:Label> <br /> <asp:Label ID="lblMessage" runat="server" Text="" Font-Names="Arial" ForeColor="Red"></asp:Label> </p> </div> <p> </p> </form> </body></html>
Для Ошибка Приложения.aspx-файл.в CS,
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication1 { public partial class ApplicationError : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void EqualButton_Click(object sender, ImageClickEventArgs e) { lblMessage.Text = ""; Label1.Text = "?"; double dblAns = 0.0; double dblNo1 = Convert.ToDouble(TextBox1.Text); double dblNo2 = Convert.ToDouble(TextBox2.Text); dblAns = Divide(dblNo1, dblNo2); Label1.Text = dblAns.ToString(); } protected double Divide(double no1, double no2) { if (no2 == 0) { DivideByZeroException err = new DivideByZeroException(); throw err; } else return no1 / no2; } } }
Для Глобальных.эйсакс.в CS,
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Security; using System.Web.SessionState; namespace Prac9__Materials_ { public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { } protected void Application_Error(object sender, EventArgs e) { Exception ex = Server.GetLastError(); //store the error for later Application["exception"] = ex; //store the location of file that made error Application["location"] = Request.Url.ToString(); //clear the error so we can continue onwards Server.ClearError(); //send user to GeneralError page Response.Redirect("ErrorPages/GeneralError.aspx", true); } protected void Application_End(object sender, EventArgs e) { } } }
Для ErrorPages/GeneralError.aspx,
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GeneralError.aspx.cs" Inherits="GeneralError" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html>
Для ErrorPages/GeneralError.aspx.cs,
using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Diagnostics; public partial class GeneralError : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { Load_Error(Server.GetLastError()); } } protected void Load_Error(Exception objError) { if(objError != null) { Exception ex = (Exception)Application["ex"]; string FileUrl = (string)Application["location"]; string strError = "<h3>Alert</h3><br /><br />" + "<bold>One error was encountered in " + FileUrl.ToString() + "</bold>" + ex.Message.ToString() + "<br /><br />" + ex.InnerException.ToString(); Response.Write(strError.ToString()); <--- The correct actual output must be displayed on GeneralError.aspx page Response.Write("<a href="/KB/answers/GeneralError.aspx">" + "GeneralError</a>\n"); Server.ClearError(); } } }
Для web.config,
<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit https://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.6.1"/> <httpRuntime targetFramework="4.6.1"/> <customErrors mode="On" defaultRedirect="ErrorPages/GeneralError.aspx"> <error statusCode="404" redirect="ErrorPages/FileNotFound.htm"/> </customErrors> </system.web> <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/> </compilers> </system.codedom> <system.webServer> <httpErrors errorMode="Custom" defaultResponseMode="File"> <clear/> <error statusCode="404" path="ErrorPages\FileNotFound.htm"/> </httpErrors> </system.webServer> </configuration>