gpt4 book ai didi

c# - 我在 asp.net MVC 中进行 session 处理它适用于 View 页面按钮我无法在 Controller 中的另一个操作上获取 session

转载 作者:行者123 更新时间:2023-12-04 07:27:21 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is a NullReferenceException, and how do I fix it?

(27 个回答)


2个月前关闭。




我从这个 Controller 的数据库中获取数据,然后我将用户名存储到一个 session 中,当我在登录后移动到 View 页面时它可以工作。

public ActionResult shoppage(assign s)
{

if (ModelState.IsValid)
{
using (transactionEntities db = new transactionEntities())
{
var obj = db.assigns.Where(a => a.Username.Equals(s.Username) && a.Password.Equals(s.Password)).FirstOrDefault();
if (obj != null)
{
Session["Username"] = s.Username.ToString();

return View();
}
else
{
return RedirectToAction("login");
}
}
iwa getting username there in Dashboard view
但是当我尝试在另一个操作结果中访问它时,它给了我一个空值异常
public ActionResult insertwatch()
{
if (Session["Username"] != null)
{
name = Session["Username"].ToString();
}

if (Request.Form["submit1"] != null)
{
transactionEntities dt = new transactionEntities();
itemthing it = new itemthing();
it.uname = name.ToString();
it.itemprice = "1200";
it.itemname = "lucia";
dt.itemthings.Add(it);
return RedirectToAction("shoppage");
}
else if (Request.Form["submit2"] != null)
{
transactionEntities dt = new transactionEntities();
itemthing it = new itemthing();
it.uname = name.ToString();
it.itemprice = "1800";
it.itemname = "Benson";
dt.itemthings.Add(it);
return RedirectToAction("shoppage");
}
错误:
this was the error

最佳答案

您可能需要添加一个空检查属性:-

 public ActionResult shoppage(assign s)
{

if (ModelState.IsValid)
{
using (transactionEntities db = new transactionEntities())
{
var obj = db.assigns.Where(a => a.Username.Equals(s.Username) && a.Password.Equals(s.Password)).FirstOrDefault();
if (obj != null)
{
if (HttpContext.Current.Session["Username"] == null) //add this code
return string.Empty;
else
//Session["Username"] = s.Username.ToString();
HttpContext.Current.Session["Username"] = s.Username.ToString();

return View();
}
else
{
return RedirectToAction("login");
}
}

或者你可以简单地使用这行代码:-

//clarify code

if (Session["Username"]!=null)
{
Session["Username"] = s.Username.ToString();
return View();
}

//clarify code
或者您可以使用类似设置 session 的内容并获取 session 的存储值:-
设置 session
string user = s.Username.ToString();   
HttpContext.Session.SetString("UserToken", user);
从 session 中获取存储的值:-
var token = HttpContext.Session.GetString("UserToken");
我认为它会解决你的问题。

关于c# - 我在 asp.net MVC 中进行 session 处理它适用于 View 页面按钮我无法在 Controller 中的另一个操作上获取 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68139674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com