我如何在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")

这段代码在视图中创建会话时抛出异常。但是我可以在控制器的动作中创建会话

我如何在asp.net mvc中创建会话内部视图

你需要把它放在一个代码块

@{ 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)。