C# 会话MVC4出错

C# 会话MVC4出错,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,当HomeController在索引ActionResults中启动时,我设置了一个值为1的会话 Session["login_fail"] = 1; 当用户尝试登录时,如果sessiono变量失败,它将更改为0 Session["login_fail"] = 0; 如果失败了,接下来会发生什么 @using(Html.BeginForm()) { <fieldset> <legend>Tbl_Users</legen

当HomeController在索引ActionResults中启动时,我设置了一个值为1的会话

Session["login_fail"] = 1;
当用户尝试登录时,如果sessiono变量失败,它将更改为0

Session["login_fail"] = 0;
如果失败了,接下来会发生什么

  @using(Html.BeginForm()) {
        <fieldset>
            <legend>Tbl_Users</legend>

    <table>
        <tr>
            <td>User Name</td>
            <td><input type="text" id="username" name="userName" /></td>
            <td id="ErrorMessage"></td>
        </tr>
        <tr>
            <td>Password </td>
            <td><input type="text" id="pass" name="pass" /></td>
            <td id="ErrorMessage"></td>

        </tr>

        @{
        if(Convert.ToInt32(Session["login_fail"]) == 0) 
        {
                <p>User name or password are incorrect. Please, try again.</p>  //here should apper the error message if it fails but it doesnt
        }
      }
    </table>
            <p>
                <input type="submit" onclick="return validate()" value="Login" />
            </p>

        </fieldset>
@使用(Html.BeginForm()){
Tbl_用户
用户名
密码
@{
if(Convert.ToInt32(会话[“登录失败])==0)
{
用户名或密码不正确。请再试一次。

//如果失败但没有成功,则应在此处显示错误消息 } }


请注意,当我提交表单时,另一个操作是谁接收帖子的值,他们检查用户和密码是否正确,如果不正确(我已检查它是否返回0),它将显示错误消息,并将返回到索引actionresults,该索引actionresults与登录用户位于同一控制器中(返回0或1的控制器)

我发现了错误。问题是,当我单击“提交”时,post值会转到另一个actionresults,然后如果登录失败,会话的值会变为0,并且它们会重新重定向到操作结果索引,并且由于某种原因,会话的值会丢失。
与使用ViewBag相同,您无法在另一个视图中看到它的值。我不知道为什么会发生这种情况,因为会话应该在整个项目中可见。但我认为这就是问题所在。

似乎在LoginUser()方法之后,Index()再次工作,并再次将
会话[“login\u fail”]=1;

您知道您的[Get]Index()在每次加载页面时都能工作。我建议您使用TempData通过控制器方法传递数据

TempData[“登录失败”]=1


因此,您可以检查索引()中的TempData是1还是0并根据TempData设置会话。

对不起,我可能遗漏了一些内容……但这里有什么问题吗?:)对不起,呵呵,我只是想知道,当我再次重定向到索引时,为什么会话没有使用新值。您是否使用基于表单的标准身份验证?您是否可以检查HttpContext以查看您的用户是否正确已登录?@{if(HttpContext.Current.User.Identity.IsAuthenticated){…基本控制器也将其作为属性。this.User。