我有一个像这样的方法:
// 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
,它应该可以正常工作,但它会重定向太多次。
任何方法可以避免这种情况并基本上将其全部保存在一个方法中?
答案 0 :(得分:1)
尝试在return语句中设置一个断点并在调试模式下运行,将鼠标悬停在“page”变量上,当调试器停止代码执行并在页面重定向时确认其值为“home”。
如果是这种情况,则问题出在LINQ语句或数据集中。确保Pages表包含home的slug值。
编辑:
更换
return RedirectToAction("Index");
使用
return RedirectToAction("Index",new { page = "" });
或者
return RedirectToAction("Index",new { page = "home" });
解决了这个问题。