汗,response.redirect 怎么会这样
Protected Sub Page_Error(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ErrorDim lError As Exception = Server.GetLastError
Server.ClearError()
Response.Redirect("~/error.aspx?err=" & lError.Message)
End Sub 这是pgebase 基类的一个错误处理事件, 所有的aspx页面都继承该基类
现在 我有一个aspx页面调用了另外一个项目中的一个数据库访问类,由于出错抛出了一个异常,按理说是会执行上面的事件并跳转到error.aspx页面,现在的是问题是路径跳转了,但是地址不对,地址如下:
http://localhost:12940/myapp/~/error.aspx?err=nothisid,
为什么不认根目录运算符~
为什么直接 写 Response.Redirect("~/error.aspx?err=rrr") 可以正确跳转,在msdn看到~只用服务器控件,我是没理解这句话,为什么写个简单的click事件把Response.Redirect("~/error.aspx?err=test")加到该事件中能跳转呢,但是放到我这个基类的error事件中就出错了? --------------------编程问答-------------------- Response.Redirect("~/admin/Default.aspx")表示当前网站根目录 --------------------编程问答--------------------
Dim s As String = "~/error.aspx?err=" & lError.Message
Response.Redirect(s)
或者用
Response.Redirect(ResolveUrl("~/error.aspx?err=" & lError.Message))
--------------------编程问答-------------------- 经过尝试,发现如果消息
public partial class Default2 : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
throw new ApplicationException("fff:"); //如果消息中加冒号跳转错误
//throw new ApplicationException("fff"); 跳转正确 why????
}
}
basepage.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// Summary description for BasePage
/// </summary>
public class BasePage : System.Web.UI.Page
{
public BasePage()
{
//
// TODO: Add constructor logic here
//
}
protected void Page_Error(object sender, EventArgs e)
{
string err = Server.GetLastError().Message;
Response.Redirect("~/default.aspx?err=" + err);
}
}
--------------------编程问答-------------------- mark.. --------------------编程问答-------------------- 应该可以的
加HttpContext.Current呢 --------------------编程问答-------------------- 路过~~~学学!!! --------------------编程问答-------------------- 因为没有把参数值encode一下,而其参数值里有冒号,所以出错了 谢谢大家 --------------------编程问答-------------------- --------------------编程问答--------------------
只能笑了。
补充:.NET技术 , ASP.NET