我通过网址发送id然后通过“请求”获取ID,从一个页面重定向到另一个页面。我遇到的问题是有两种方法可以访问该页面。
异常详细信息:System.InvalidOperationException:Nullable对象 必须有价值。
当您重定向到方案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中的页面都能正常工作。看起来像是
if(Request!= null)
不正确。
答案 0 :(得分:1)
你做错了是因为检查你试图用文本框值赋值的空值,正确的做法方法如下:
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();
}
}
答案 1 :(得分:0)
如果你的页面只能在id
请求参数上运行,那么你必须像其他人建议的那样自己检查它的存在 - 你无法阻止页面被自动访问,因为没有什么能阻止你点击来自浏览器的URL。
如果参数不存在,您应该优雅地处理它。我使用的典型方法是,如果URL不包含我需要的所有内容,则重定向到已知的安全页面(例如主页),但我想您也可以在页面上显示警告消息。