我如何在asp.net mvc中创建会话内部视图
本文关键字:创建 会话 内部 视图 mvc net asp | 更新日期: 2023-09-27 18:11:25
@{
ViewBag.Title = "Login";
}
<h2>Login</h2>
@Session["username"]="shahed";
@Session["password"]="123";
<div style="height:200px;width:500px;background-color:red;">
<h3>@Session["username"].ToString()</h3>
</div>
@Html.ActionLink("Logout", "Logout", "Login")
这段代码在视图中创建会话时抛出异常。但是我可以在控制器的动作中创建会话
你需要把它放在一个代码块
@{ Session["username"]="shahed"; }
....
<h3>@Session["username"].ToString()</h3>
虽然在视图中设置Session
数据不是一个好主意,但您可以轻松地做到这一点。
<h2>Login</h2>
@{
// code block - whole statement evaluate
Session["username"]="shahed";
Session["password"]="123";
}
<div style="height:200px;width:500px;background-color:red;">
<h3>@Session["username"].ToString()</h3>
从你的代码的不同之处在于分配给Session
是在@{..}
块(c#代码)内完成的,你的版本使用@
计算Session["username"]
作为c#代码,其余的(="shahed"
)作为HTML标记-因此没有分配(下一行抛出NRE在@Session["username"].ToString()
上,因为Session["username"]
仍然是null
)。