RedirectToAction无法在控制器中工作

时间:2013-07-18 13:24:58

标签: c# asp.net-mvc

以下是我的控制器中的一个登录功能:

[HttpPost]
public ActionResult LogIn(string email, string password)
{          
   return RedirectToAction("Index", "Home");           
}  

这会调用HomeController的索引功能,但同样的屏幕,即登录屏幕仍保留在浏览器上。以下是我的MVC应用程序中的路由:

public static void RegisterRoutes(RouteCollection routes)
{
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Login", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );
}  

我不确定是什么问题。我搜索网络,但其他用户面临的问题有偏差。

更新

HomeController:

public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your app description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }

1 个答案:

答案 0 :(得分:0)

主页控制器上的索引页面等页面需要[AllowAnonymous]修改操作以允许在不登录的情况下查看页面。

这样做

public class HomeController : Controller
    {
        [AllowAnonymous]
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            return View();
        }

您还需要

[HttpPost]
[AllowAnonymous]
public ActionResult LogIn(string email, string password)
{          
   return RedirectToAction("Index", "Home");           
}