在加载到服务器上的Web表单中,.NET调试会话中的内容是什么。
在加载到服务器上的Web表单中,.NET调试会话中的内容是什么。
我目前正在开发一系列的Web表单,当按照正确的顺序点击时,信息将被存储到Session中。如果用户直接访问此页面,我希望将其重定向回第一个Web表单页面。我可以做到这一点。当我在本地运行此代码时,Session为空,if/else语句起作用,重定向到default.aspx。但是当我将文件加载到服务器并从网页运行时,出现了一个 \"Object reference not set to an instance of an object.\" 的错误。\nprotected void Page_Load(object sender, EventArgs e)\n{\n if (Session != null && Session[\"ReasonForAdminRights\"] != null)\n {\n ll.Text = Session[\"ReasonForAdminRights\"].ToString();\n }\n else\n {\n Response.Redirect(\"~/default.aspx\");\n }\n}\n我尝试了许多变体,但都没有成功,包括:\nif (!string.IsNullOrEmpty(Session[\"ReasonForAdminRights\"] as string))\n{\n ll.Text = ((string)Session[\"ReasonForAdminRights\"]);\n}\n和\nif (Session[\"ReasonForAdminRights\"] != null)\n我在Google上搜索了一些答案,Stackoverflow上的答案告诉我Session对象没有正确设置。但我不知道如何在服务器上进一步调试它?我不知道如何找出实际上有什么内容,因为它应该为空,所以应该总是进入else语句。\n任何帮助将不胜感激!我有点束手无策!\n尝试的答案:\nWhat does \"Object reference not set to an instance of an object\" mean?\nWhat is a NullReferenceException, and how do I fix it?\nObject reference not set to an instance of an object.\n编辑\n堆栈跟踪:\n[NullReferenceException: Object reference not set to an instance of an object.]\n ServiceDeskHelpForms.user_details_collection.Page_Load(Object sender, EventArgs e) in \\ \\homes\\My Documents\\Visual Studio 2015\\Projects\\SDHelpForms\\SDHelpForms\\user-details-collection.aspx.cs:24\n System.Web.UI.Control.OnLoad(EventArgs e) +108\n System.Web.UI.Control.LoadRecursive() +67\n System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)\n+ 4497
问题的原因是在加载到服务器上的WebForm中,当尝试在Session中获取"ReasonForAdminRights"的值时,出现了错误。尽管这个值应该是空的,不会进入if语句,但仍然报错。
解决方法是检查Session中"ReasonForAdminRights"的值是否为null或空,并在使用该值之前进行适当的处理。
以下是这个问题的整理文章:
在使用.NET进行调试时,有时会遇到在加载到服务器上的WebForm中查看Session中存储的内容的需要。然而,有时候会出现错误,即使Session应该是空的。下面是一个示例代码:
var sessionValue= (string)(Session["ReasonForAdminRights"]); if(!string.IsNullOrEmpty(sessionValue)) { //do something... }
在这个示例中,我们尝试从Session中获取"ReasonForAdminRights"的值,并检查它是否为null或空。如果不为空,就可以执行一些操作。
然而,即使我们在if语句中添加了对sessionValue是否为空的检查,仍然会在下面的代码行中出现错误:
ll.Text = ((string)Session["ReasonForAdminRights"]);
尽管我们认为不会进入if语句,因为Session应该是null的,但仍然会报错。
为了解决这个问题,我们需要在使用Session中的值之前,先检查它是否为null或空。可以使用以下代码进行检查:
if(Session["ReasonForAdminRights"] != null) { var sessionValue= (string)(Session["ReasonForAdminRights"]); //do something... }
通过添加对Session是否为null的检查,可以避免出现错误。这样,即使Session实际上是null,也不会执行if语句中的代码,从而避免了错误的发生。
,当在加载到服务器上的WebForm中查看Session中的内容时,需要注意Session的值是否为null或空。通过在使用Session值之前添加检查,可以避免出现错误。