是mvc的项目在mvc项目里,有个用户控件,里边有两个按钮,例如“张三   退出”如果点“退出”后,这个控件显示“登陆”请问,我这个退出事件,怎么写呀?难道是新建一个action和对应的view吗?里边写删除登陆者session的功能。我关于这个有两个疑问一,新增一个退出的view,里边就有清除session的功能。这样不是浪费页面吗。
    以前是在webform里做,在aspx.cs里写个函数,这个按钮执行它就可以了,可是现在不一样了
    哎,还是思想没转回来。二,我已经新建了一个关于清楚session的action和view。点击“退出”后转到那个veiw,已经
    可以清楚session了,可是清楚之后window.history.back(-1);
    发现有页面缓存,那个页面的信息没变呀。怎么办呀,~谢谢

解决方案 »

  1.   

    难道是新建一个action和对应的view吗?
    --------------------------
    正是,觉得麻烦是吧?那用回webform吧,哈哈。
      

  2.   

    提供你一段登录代码:首先定义接口:        public interface IFormsAuthentication
            {
                void SignIn(string UserName, bool createPersistentCookie);
                void SignOut();
            }
    实现接口:        public class FormsAuthenticationService : IFormsAuthentication
            {
                public void SignIn(string UserName, bool createPersistentCookie)
                {
                    FormsAuthentication.SetAuthCookie(UserName, createPersistentCookie);
                }
                public void SignOut()
                {
                    FormsAuthentication.SignOut();
                }
            }
    创建对象:public IFormsAuthentication FormsAuthen = new FormsAuthenticationService();
    登录:        [AcceptVerbs(HttpVerbs.Post), ActionName("LoginSystem")]
            public ActionResult LoginSystem(string UserName, string PassWord)
            {
                if (验证用户名密码方法,返回bool)
                {
                    FormsAuthen.SignIn(存入Session的名字,false);
                    return this.RedirectToAction("ActionName", "Controller");
                }
                else
                {
                    ViewData["LoginError"] = "用户名或密码不正确";
                    return View(登录页面);
                }
            }
    用户退出:        public ActionResult LogOut()
            {
                FormsAuthen.SignOut();
                return this.RedirectToAction("ActionName", "Controller");
            }
    在你的登录、退出控件中,可以通过判断
    Request.IsAuthenticated
    来决定显示的是“登录”还是“退出”
      

  3.   


    未必,view里的提交,可以提交到某个form指定的action里吧。
    因此未必是一个action必须要对应一个view的。