c# - 通过 Session 变量初始化一个值

标签 c# asp.net javascript literals

我需要使用引用 session 变量的 c# 文字在 Javascript 中初始化一个值。我正在使用以下代码

<script type="text/javascript" language="javascript" > 
    var myIndex = <%= !((Session["myIndex"]).Equals(null)||(Session["myIndex"]).Equals("")) ? Session["backgroundIndex"] : "1" %>;

但是上面的代码给我一个经典的 Object reference not set to an instance of an object. 错误。为什么? (Session["myIndex"]).Equals(null) 不应该捕获这个特定错误吗?

最佳答案

问题是 null 不是对象,Equals() 方法只能用于对象。如果你想检查你的 Session 对象是否为 null,你应该使用 (Session["myIndex"] == null)。您还可以使用 string.IsNullOrEmpty() 对空字符串进行额外检查。在这种情况下,您的代码应该是:

var myIndex = <%= !string.IsNullOrEmpty((string)Session["myIndex"]) ? Session["backgroundIndex"] : "1" %>;

注意:在这种情况下,Session["backgroundIndex"] 不应该是 Session["myIndex"] 吗?否则,我认为 null 或空字符串检查有点无用。

关于c# - 通过 Session 变量初始化一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2772256/

相关文章:

c# - 如何在添加文件后但发送前获取 RestRequest 正文内容

c# - 如何按列分隔DataTable并存储以备后用

javascript - Cypress /JavaScript : Parameter on request path (response. body.VARIABLE)

c# - 多任务延续

c# - 将非常小的数字字符串转换为十进制

javascript - 如何使用 Javascript 调用 C# 类方法?

javascript - 使用 Visual Studio Code 在 Node.JS 中定义类型

javascript - 必需的属性不起作用

c# - ASP.NET MVC 5 和 WebApi 2 身份验证

c# - 检查数组中的空字符 C#