为什么PreviousPage为null

今天在自学网上学习了一下页面之间控件的传值,通过Button中的PostBackUrl来实现页面的跳转,通过PreviousPage.FindControl(“”);来获取控件的id,以实现页面值的传递 .  但发现previousPage一直是null,为了避免代码原因,我随手写了个button来测试了一下:

c_set.aspx为传值页

<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/c_read.aspx"  />

c_read.aspx为接受页

c_read.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.PreviousPage != null)
        {
            Response.Write("previousPage不是空");
        }
        else
        {
            Response.Write("previousPage是空");
        }
    }

显示结果为previousPage为空

最后我在网上查了很久,才找到原因:When you use the default WebForm from visual Studio, the AutoRedirectMode is set to Permanent. This makes you request into a “GET” and since you are using Friendly URLs1, you can’t evaluate the PreviousPage.

The problem was the FriendlyUrls nuget package was removing the .aspx after my page names so my target page was not WebForm2.aspx but just WebForm2. This made the previous page null.

If you want a “POST” action then set the AutoRedirectMode = RedirectMode.Off (this will give you PreviousPage info but only from non-Friendly-Url pages [ex: www.you.com/mypage.aspx], however this will get you an error if you try to access the Friendly-Url page [ex: www.you.com/mypage] << no .aspx).

当你用建立网站的时候通过ASP.Net WEB窗体网站,那么在运行的时候浏览器会隐藏页面的后缀。

如果我们通过空网站建立WEB项目即:

那么previousPage就不会为空了。

c_read.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
    {
        if (PreviousPage != null)
        {
            Response.Write("previousPage可用");
        }

}

时间: 2024-11-12 10:20:32

为什么PreviousPage为null的相关文章

Spring rabbitMq 中 correlationId或CorrelationIdString 消费者获取为null的问题

问题 在用Spring boot 的 spring-boot-starter-amqp   快速启动 rabbitMq 是遇到了个坑 消费者端获取不到:correlationId或CorrelationIdString 问题产生的原因 correlationId 的在 spring rabbitmq 2.0 以后 byte方式会被放弃,所以 目前 代码中有些地方没有改过来,应该算一个BUG @SuppressWarnings("deprecation") public class De

值不能为null.参数名: viewInfo,如何解决

有蓝队网络服务器租用客户反映在一台服务器上使用数据库管理工具时弹出了如下错误 :值不能为null.参数名: viewInfo (Microsoft.SqlServer.Management.SqlStudio.Explorer 错误信息如上图: 解决方法:点击确定 登陆上去.查看---已注册的服务弹出报错信息,点详细. 会找到一个类似无法读取C:\Users\www.landui.com\AppData\Local\Temp\3\xx.tmp 的报错信息. 打开对应目录C:\Users\www.

java 的&quot;&quot;和null的区别

null和""的区别 问题一: null和""的区别 String s=null; string.trim()就会抛出为空的exception String s=""; string.trim()就不会抛,为什么? 答: NULL代表声明了一个空对象,根本就不是一个字符串. ""代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串. NULL代表声明了一个空对象,对空对象做任何操作都不行的,除了=和== "

shell输出的那个垃圾桶——/dev/null

昨晚花费一整晚在知乎回答了一个关于shell里面的重定向输出到/dev/null的问题.果断今晚也同步发在这里,反正也没人看~~~~ 以下来自一个重度linux使用患者不请自来的回答. 先用简单的语言回答题主的问题: shell程序中 2> /dev/null 代表什么意思? 答:"2> /dev/null" 代表忽略掉错误提示信息. 如题 2> 代表什么意思?讲错误输出删除? 答:"2>" 代表重定向操作错误提示信息.只有这两个字符并不能删

sendUserActionEvent() mView== null after clicking on button

this is not a problem related to your code, but related to S4 android version. Same question has been posed on stackoverflow : sendUserActionEvent() is null So, just ignore it

2&gt;&1 &gt;/dev/null & 与/dev/null 2&gt;&1含义

/dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo "123" > /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null" 2 表示stderr标准错误 & 表示等同于的意思,2>&1,表示2的输出重定向等同于1 1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到

PHP如何区分未定义,null

今天遇到群里一个人提的问题,isset无法区分未定义和null怎么办? 下面是代码. <?php$b = null;$c = '';$arr = get_defined_vars(); if(!isset($a) && !array_key_exists('a', $arr)){    echo '变量未定义';}else if($a === null){    echo '变量已定义,但变量为空';}else{    echo '变量已定义且变量不为空';} echo '<b

前端面试准备2----Javascript中的Undefined和null小结

JavaScript中有两个表示“空”的值,分别是Undefined和null: (1)Undefined 定义了一个全局变量,它的值是 undefined,这个变量也被称为undefined. 但是这个变量不是一个常量,也不是一个关键字.这意味着它的值可以轻易被覆盖. ES5 提示: 在 ECMAScript 5 的严格模式下,undefined 不再是可写的了. 但是它的名称仍然可以被隐藏,比如定义一个函数名为 undefined. 下面的情况会返回 undefined 值: 访问未修改的全

在Java代码中避免 &quot;!=null &quot; 判断

这对于我来说是一个很合理常见的问题,由初级过度到中级程序员的时候经常会遇到.他们不知道也不信任正在用的约定,并且小心的检查着null.还有当他们写代码的时候,总是会依赖于通过返回空(NULL)来表明某些意义,因此需要调用者去检查Null. 换种方式来说,有两种情景空指针的检查会出现: 就约定来说是一个合理的响应 不是合理的响应 第二种很简单,可以通过用assert或者直接允许失败,例如NullPointerException.Assertions是一个从Java1.4加进来的高度未被利用的特性,