返回重定向到自身的方法 - localhost重定向次数太多

时间:2016-11-09 19:07:02

标签: c# asp.net-mvc

我有一个像这样的方法:

// GET: Pages Index
        public ActionResult Index(string page = "")
        {
            if (page == "")
                page = "home";

            PagesVM pageVM;
            PagesDTO pageDTO;

            Db db = new Db();

            if (!db.Pages.Any(row => row.Slug.Equals(page)))
                return RedirectToAction("Index");

            ...
        }

如果我转到mydomain/somepage并且该页面存在,它可以正常工作,但如果该页面不存在,它会重定向到自身但是太多次,我不明白为什么因为它重定向到本身page应该成为home,它应该可以正常工作,但它会重定向太多次。

任何方法可以避免这种情况并基本上将其全部保存在一个方法中?

1 个答案:

答案 0 :(得分:1)

尝试在return语句中设置一个断点并在调试模式下运行,将鼠标悬停在“page”变量上,当调试器停止代码执行并在页面重定向时确认其值为“home”。

如果是这种情况,则问题出在LINQ语句或数据集中。确保Pages表包含home的slug值。

编辑:

更换

return RedirectToAction("Index"); 

使用

return RedirectToAction("Index",new { page = "" });

或者

return RedirectToAction("Index",new { page = "home" });

解决了这个问题。