【问题标题】:Accessing session variable in Razor Layout?在 Razor 布局中访问会话变量?
【发布时间】:2014-02-13 16:39:44
【问题描述】:

当我在布局页面中编写代码时

简介

@Session["iname"].ToString();

我收到了这个错误

Object reference not set to an instance of an object.

我试过了 @HttpContext.Current.Session["iname"].ToString() 但不工作

【问题讨论】:

  • @Session["iname"] 为空。你是在哪里设置的吗?无论如何,我通常建议通过视图模型将数据传递给视图,并让您的控制器将其从会话中拉出。
  • institute ins = (from I in db.institutes where I.uid == id select I).FirstOrDefault(); iimage im = (来自 db.iimages 中的 Im.uid == id && Im.isLogo == 1 选择 Im).FirstOrDefault();会话[“iid”] = ins.Id;会话["iname"] = ins.Title;会话["ilogo"] = im.imgpath;
  • 能否告诉我布局中访问会话变量的差异类型??

标签: asp.net asp.net-mvc-4 razor


【解决方案1】:

这意味着 Session 中的键 "iname" 没有任何内容。 Null在使用ToString之前检查一下:

@if(Session["iname"] != null)
{
    Session["iname"].ToString();
}

【讨论】:

    【解决方案2】:

    你可以在设计中做到这一点

    @using Microsoft.AspNetCore.Http
    @if (Context.Session.GetString("iname") != null){}
    

    【讨论】:

      猜你喜欢
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多