我从一个页面重定向到另一个页面,通过url发送一个id,然后通过“请求”获得它。我遇到的问题是,有两种方法可以到达页面。
异常详细信息: System.InvalidOperationException:可空对象必须有一个值。
当您被重定向到场景1和直接进入场景2时,链接将是怎样的。
1. http://localhost/red/time/time.aspx?id=154
2. http://localhost/red/time/
if (!IsPostBack)
{
//Bladdra(4, 0);
txtTidrapportnr.Text = Request["id"];
if (Request != null)
{
Hamta(General.ToInt(txtTidrapportnr.Text).Value);
Visa();
btnNy.Focus();
}
else
{
Bladdra(4, 0);
Visa();
btnNy.Focus();
}
}我的问题是如何在场景1和场景2中使页面工作。
如果(请求!= null)
是不对的
发布于 2014-01-09 14:13:50
您正在做的错误事情是,在检查要使用textbox值分配的空值之前,正确的处理方法如下:
if (!IsPostBack)
{
//Bladdra(4, 0);
//txtTidrapportnr.Text = Request["id"];
if (Request["id"] != null)
{
txtTidrapportnr.Text =Convert.ToString(Request["id"]);
Hamta(General.ToInt(txtTidrapportnr.Text).Value);
Visa();
btnNy.Focus();
}
else
{
Bladdra(4, 0);
Visa();
btnNy.Focus();
}
}发布于 2014-01-09 14:18:32
如果您的页面只有在id请求参数时才能工作,那么您必须按照其他人的建议亲自检查它的存在--您不能阻止页面被自动访问,因为没有什么可以阻止您从浏览器手动访问URL。
如果参数不存在,那么您应该优雅地处理它。我使用的一种典型方法是,如果URL不包含我所需的所有内容,则重定向到已知的安全页面(例如主页),但我认为您也可以在页面上显示警告消息。
https://stackoverflow.com/questions/21022428
复制相似问题