【问题标题】:How can I define empty session in mvc view, c#如何在 mvc 视图中定义空会话,c#
【发布时间】:2016-03-29 21:23:49
【问题描述】:

我在这样的视图中定义并清空session

<input id="myc" type="hidden" data-value="@Request.RequestContext.HttpContext.Session["Ealert"].ToString()" />

但是当我运行时,它说对象引用未设置为对象的实例。

我不知道。在我的控制器中我确实喜欢这样

Session["Ealert"] = null;

            Random random = new Random();
            int idONe = random.Next(99,999);
            int idTwo = random.Next(999, 9999);
            string middle = "menuka";

            string fullID = idONe.ToString() + middle + idTwo.ToString();

            var N_ID = fullID;
            var N_Email = N_EmailAdd;



            TourCenterDBEntities NewsLetterEntities = new TourCenterDBEntities();

            var existing = NewsLetterEntities.News_Letter.Where(l => l.N_Email == N_EmailAdd);
            Debug.WriteLine(existing.Count());

            if(existing.Count()==0)
            {
                News_Letter NewsLetterDetails = new News_Letter();



                NewsLetterDetails.N_id = N_ID;
                NewsLetterDetails.N_Email = N_Email;

                NewsLetterEntities.News_Letter.Add(NewsLetterDetails);

                NewsLetterEntities.SaveChanges();

                Session["Ealert"] = "s";
            }
            else
            {
                Session["Ealert"] = "e";


            }


            return Json(new { });

我该怎么做。希望你能帮我解决这个问题。我被卡住了。

【问题讨论】:

  • 您的方法似乎返回了带有 return Json(new { }); 的 JSON 结果,但该结果中实际上没有任何内容。
  • 为什么? MVC 被设计为无会话的,只有当你真的必须使用它时才使用它。我认为上面没有充分的理由使用 Session 对象。
  • 你想要达到的目的是什么??
  • 那么我能做些什么呢。我真正要做的是,如果记录存在则显示错误消息,如果不存在则在视图中显示成功消息。
  • 您在控制器或视图中究竟在哪里得到对象引用错误?如果是控制器代码,错误是在哪一行抛出的?

标签: c# asp.net-mvc session


【解决方案1】:

好的,试试这个

@if(Request.RequestContext.HttpContext.Session["Ealert"]!=null)
{
<input id="myc" type="hidden" data-value="@Request.RequestContext.HttpContext.Session["Ealert"].ToString()" />

}

【讨论】:

  • 你不能使用未签名的会话,因为它是一个对象......你的隐藏字段在做什么??
  • @if(Request.RequestContext.HttpContext.Session["Ealert"]!=null) { }
  • 如果条件会显示警报并且您何时分配会话,请替换它?在您的帖子或获取方法中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-27
  • 2015-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-12
相关资源
最近更新 更多