MVC The resource cannot be found

BenAspect

New Member
Okay, this is driving me crazy.I have this project, and I am MONTHS without touching the \[code\]FeedController\[/code\]. Everything was working fine.Then, I opened the \[code\]FeedController\[/code\] to change some code inside an action and for some reason, VS2010 crashed. Okay, VS already crashed before, nothing unusual.So I restarted VS, and mysteriously, the \[code\]FeedController\[/code\] started to give "404 The resource cannot be found" error.So I checked \[code\]Global.asax\[/code\], \[code\]Web.Config\[/code\], StartURL, all stuff people recommend. Can't get it to work. If I call \[code\]/Feed/Index\[/code\], It Works! But \[code\]/Feed/\[/code\] just gives me the error.Changed the name of the entire controller to \[code\]ShitController\[/code\] and It just WORKS PERFECT! Somehow, the project decided that "Feed" is some kind of "curse word".Cleaned solution, \[code\]/bin/\[/code\] restarted vs dev server, restarted computer and it is just broker forever.I'm starting to think this is a MVC3 serious BUG.Anyone? I'm getting crazy. I should go for a walk, maybe :)Routes:\[code\]routes.MapRoute( "XBLContentDetailsLocale", "XBLContent/Details/{guid}/{locale}", new { controller = "XBLContent", action = "Details"}, new { guid = @"[0-9|a-z|\-]{36}", locale = @"[a-z|A-Z]{2}-[A-Z|a-z]{2}"});routes.MapRoute( "XBLContentDetails", "XBLContent/Details/{guid}", new { controller = "XBLContent", action = "Details" }, new { guid = @"[0-9|a-z|\-]{36}" });routes.MapRoute( "XBLContentDaysLocale", "XBLContent/{days}/{locale}", new { controller = "XBLContent", action = "Index" }, new { days = @"[0-9]", locale = @"[a-z|A-Z]{2}-[A-Z|a-z]{2}" });routes.MapRoute( "XBLContentDays", "XBLContent/{days}", new { controller = "XBLContent", action = "Index" }, new { days = @"[0-9]" });routes.MapRoute( "FeedRouteFull", "Feed/{action}/{sort}/{locale}", new { controller = "Feed", action = "GameAddons" }, new { sort = @"[a-z|A-Z]+", locale = @"[a-z|A-Z]{2}-[A-Z|a-z]{2}" });routes.MapRoute( "FeedRouteSort", "Feed/{action}/{sort}", new { controller = "Feed", action = "GameAddons", sort = UrlParameter.Optional }, new { sort = @"[a-z|A-Z]+" });routes.MapRoute( "FeedRoute", "Feed/{action}", new { controller = "Feed", action = "Index" });routes.MapRoute( "Locale", "{locale}", new { controller = "Home", action = "Index" }, new { locale = @"[a-z|A-Z]{2}-[A-Z|a-z]{2}" });routes.MapRoute( "ControllerLocale", "{controller}/{locale}", new { controller = "Home", action = "Index", locale = UrlParameter.Optional }, new { locale = @"[a-z|A-Z]{2}-[A-Z|a-z]{2}" });routes.MapRoute( "ControllerActionLocale", "{controller}/{action}/{locale}", new { controller = "Home", action = "Index", locale = UrlParameter.Optional }, new { locale = @"[a-z|A-Z]{2}-[A-Z|a-z]{2}" });routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });\[/code\]UPDATE:I commented all the routes leaving only the default one, and the error still exists.UPDATE:Here is the whole controller. Only changed the Arcade action and commented the "oldcode":\[code\]public class FeedController : Controller{ XBLContentContext db = new XBLContentContext(); private int activemenu = 4; private const int QT_FEED = 12; public ActionResult Index(string locale) { if (String.IsNullOrEmpty(locale)) locale = "en-us"; ViewBag.Title = "Xbox LIVE Feeds"; ViewBag.Description = "Xbox LIVE Feed generator. Configure and add it to your favourite feed reader."; ViewBag.Keywords = "xbox, live, tools, feed, syndication, rss, atom"; ViewBag.ContentType = Enum.GetValues(typeof(ContentType)).Cast<ContentType>().Select(v => new SelectListItem { Selected = (v == ContentType.Arcade), Text = v.ToString().ToSentence(), Value = http://stackoverflow.com/questions/14419853/v.ToString() }); ViewBag.SortBy = Enum.GetValues(typeof(SortBy)).Cast<SortBy>().Select(v => new SelectListItem { Selected = (v == SortBy.OfferStartDate), Text = v.ToString().ToSentence(), Value = v.ToString() }); ViewBag.Regions = (from x in GlobalVariables.Regions select new SelectListItem { Selected = (x.ID.ToLower() == locale), Text = x.Country, Value = x.ID.ToLower() }).OrderBy(x => x.Text).ToList(); return View(); } public ActionResult AllDownloads(string sort, string locale) { var today = DateTime.Today; var region ="All Regions"; var qry = from c in db.XBLRegionalContents.Include("Region").Include("Content") where c.PublishDate <= today select c; var qry2 = from c in qry group c by c.ContentId into grouped let maxdate = grouped.Max(x => x.PublishDate) select new { Key = grouped.Where(x => x.ContentId == grouped.Key && (x.PublishDate == maxdate)).FirstOrDefault(), Value = http://stackoverflow.com/questions/14419853/grouped.Where(x => x.ContentId == grouped.Key).Select(x => x.Region) }; if (!String.IsNullOrEmpty(locale)) qry2 = from c in qry2 where c.Value.Any(x => x.ID == locale) select c; var model = qry2.OrderByDescending(x => x.Key.PublishDate).Take(QT_FEED).ToDictionary(x => x.Key, x => x.Value); if (!String.IsNullOrEmpty(locale) && model.Count() > 0) region = model.FirstOrDefault().Key.Region.CountryEnglish; ViewBag.Language = locale; ViewBag.FeedTitle ="XBLTOOLS - Latest Content"; ViewBag.FeedDescription = String.Format("{0} - {1}", region, DateTime.Now); return View("GlobalFeed", model); } public ActionResult FullGames(string sort, string locale) { var today = DateTime.Today; var region = "All Regions"; var indie = ContentType.IndieGames.ToString(); var qry = from c in db.XBLRegionalContents.Include("Region").Include("Content") where c.Content.RelatedGameId == null && c.Content.FileSize > 0 && c.PublishDate <= DateTime.Today && c.Content.ContentType != indie select c; var qry2 = from c in qry group c by c.ContentId into grouped select new { Key = grouped.Where(x => x.ContentId == grouped.Key).FirstOrDefault(), Value = http://stackoverflow.com/questions/14419853/grouped.Where(x => x.ContentId == grouped.Key).Select(x => x.Region) }; if (!String.IsNullOrEmpty(locale)) qry2 = from c in qry2 where c.Value.Any(x => x.ID == locale) select c; var model = qry2.OrderByDescending(x => x.Key.PublishDate).Take(QT_FEED).ToDictionary(x => x.Key, x => x.Value); if (!String.IsNullOrEmpty(locale) && model.Count > 0) region = model.FirstOrDefault().Key.Region.CountryEnglish; ViewBag.Language = locale; ViewBag.FeedTitle ="XBLTOOLS - Full Games"; ViewBag.FeedDescription = String.Format("{0} - {1}", region, DateTime.Now); return View("GlobalFeed", model); } public ActionResult Arcade(string sort, string locale) { var page = db.XBLPages.First(x => x.Type == (int)XBLPageType.List); using (XBLPageCrawler crawler = new XBLPageCrawler(page, ContentType.Arcade, DownloadType.Game, sort, locale)) { var countrycode = String.IsNullOrEmpty(locale) ? String.Empty : String.Format("{0} - ", locale.Split('-')[1].ToUpper()); ViewBag.Language = locale; ViewBag.FeedTitle = String.Format("{0}{1}", countrycode, crawler.CType.GetDescription()); return View("Feed", crawler.PageContent); } #region OLDCODE // using (XBLChart p = new XBLChart(ContentType.Arcade, DownloadType.Game, sort, locale)) // { // var countrycode = String.IsNullOrEmpty(locale) ? String.Empty : String.Format("{0} - ", locale.Split('-')[1].ToUpper()); // ViewBag.Language = locale; // ViewBag.FeedTitle = String.Format("{0}{1}", countrycode, p.CType.GetDescription()); // return View("Feed", p.ListaRegional); // } #endregion } public ActionResult GamesOnDemand(string sort, string locale) { using (XBLChart p = new XBLChart(ContentType.GamesOnDemand, DownloadType.Game, sort, locale)) { var countrycode = String.IsNullOrEmpty(locale) ? String.Empty : String.Format("{0} - ", locale.Split('-')[1].ToUpper()); ViewBag.Language = locale; ViewBag.FeedTitle = String.Format("{0}{1}", countrycode, p.CType.GetDescription()); return View("Feed", p.ListaRegional); } } public ActionResult IndieGames(string sort, string locale) { using (XBLChart p = new XBLChart(ContentType.IndieGames, DownloadType.Game, sort, locale)) { var countrycode = String.IsNullOrEmpty(locale) ? String.Empty : String.Format("{0} - ", locale.Split('-')[1].ToUpper()); ViewBag.Language = locale; ViewBag.FeedTitle = String.Format("{0}{1}", countrycode, p.CType.GetDescription()); return View("Feed", p.ListaRegional); } } public ActionResult GameDemos(string sort, string locale) { using (XBLChart p = new XBLChart(ContentType.GameDemos, DownloadType.GameDemo, sort, locale)) { var countrycode = String.IsNullOrEmpty(locale) ? String.Empty : String.Format("{0} - ", locale.Split('-')[1].ToUpper()); ViewBag.Language = locale; ViewBag.FeedTitle = String.Format("{0}{1}", countrycode, p.CType.GetDescription()); return View("Feed", p.ListaRegional); } } public ActionResult GameAddons(string sort, string locale) { using (XBLChart p = new XBLChart(ContentType.GameAddons, DownloadType.GameAddon, sort, locale)) { var countrycode = String.IsNullOrEmpty(locale) ? String.Empty : String.Format("{0} - ", locale.Split('-')[1].ToUpper()); ViewBag.Language = locale; ViewBag.FeedTitle = String.Format("{0}{1}", countrycode, p.CType.GetDescription()); return View("Feed", p.ListaRegional); } } public ActionResult GameVideos(string sort, string locale) { using (XBLChart p = new XBLChart(ContentType.GameVideos, DownloadType.GameVideo, sort, locale)) { var countrycode = String.IsNullOrEmpty(locale) ? String.Empty : String.Format("{0} - ", locale.Split('-')[1].ToUpper()); ViewBag.Language = locale; ViewBag.FeedTitle = String.Format("{0}{1}", countrycode, p.CType.GetDescription()); return View("Feed", p.ListaRegional); } } public ActionResult ThemesAndGamerPic(string sort, string locale) { using (XBLChart p = new XBLChart(ContentType.ThemesAndGamerPic, DownloadType.ThemesAndGamerPic, sort, locale)) { var countrycode = String.IsNullOrEmpty(locale) ? String.Empty : String.Format("{0} - ", locale.Split('-')[1].ToUpper()); ViewBag.Language = locale; ViewBag.FeedTitle = String.Format("{0}{1}", countrycode, p.CType.GetDescription()); return View("Feed", p.ListaRegional); } } protected override void Dispose(bool disposing) { db.Dispose(); base.Dispose(disposing); }}\[/code\]UPDATEChanged the Index action to Config and it works. Seems like the problem is with the default implicit "Index", because explicit /Feed/Index works too.
 
Back
Top