“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
 未找到视图“MyIndex”或其母版视图。搜索了以下位置: 
~/Views/MyStruct/MyIndex.aspx
~/Views/MyStruct/MyIndex.ascx
~/Views/Shared/MyIndex.aspx
~/Views/Shared/MyIndex.ascx 
上面是我出现的问题,很明显是找不到资源,我检查了很多遍,也没有找出问题,我测试了几遍,可能是解析引擎的问题,但是我没能够找出来,请高手指教
一下是我的部分源代码
global中的代码
 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.CreateArea("Blogs", "MvDestoryTheConstruct.Areas.Blogs.Controllers", routes.MapRoute(
                null,
                "Blogs/{controller}/{action}/{id}", // 带有参数的 URL
                new { controller = "MyStruct", action = "Index", id = UrlParameter.Optional }));
        }        protected void Application_Start()
        {
            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new AreaViewEngine());
           
            //AreaRegistration.RegisterAllAreas();            RegisterRoutes(RouteTable.Routes);                   }
我自定义的方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Routing;namespace MvDestoryTheConstruct
{
    //新建路由设置拓展方法
    public static class AreaRouteHelp
    {
        public static void CreateArea(this RouteCollection routes, string areaName, string controllersNamespace, params Route[] routeEntries)
        {
            foreach (var route in routeEntries)
            {
                if (route.Constraints == null)
                {
                    route.Constraints = new RouteValueDictionary();
                }
                if (route.DataTokens == null)
                {
                    route.DataTokens = new RouteValueDictionary();
                }
                if (route.Defaults == null)
                {
                    route.Defaults = new RouteValueDictionary();
                }
                route.Constraints.Add("area", areaName);
                route.Defaults.Add("area", areaName);
                route.DataTokens.Add("namespaces",new string[]{controllersNamespace});
                //将路由添加到路由表中
                if (!routes.Contains(route))
                {
                    routes.Add(route);
                }
            }
            
        }
    }
}这是我自定义的解析引擎
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;namespace MvDestoryTheConstruct
{
    public class AreaViewEngine:WebFormViewEngine
    {
        public AreaViewEngine():base()
        {
            ViewLocationFormats = new []{
                "/{0}.aspx",
                "/{0}.ascx",
                "/View/{1}/{0}.aspx",
                "/View/{1}/{0}.ascx",
                "/View/Shared/{0}.aspx",
                "/View/Shared/{0}.ascx",
            };
            MasterLocationFormats = new[]
            {
                 "/{0}.master",
                "/{0}.master",
                "/View/{1}/{0}.master",
                "/View/{1}/{0}.master",
                "/View/Shared/{0}.master",
                "/View/Shared/{0}.master",
            };
            PartialViewLocationFormats = ViewLocationFormats;
            
        }        private static string FromateSharedViewName(ControllerContext controllerContext, string viewName)
        {
            string area=controllerContext.RouteData.Values["area"].ToString();
            return "Areas/" + area + "Views/Shared/" + viewName;
        }        private static string FormatiViewName(ControllerContext controllerContext,string viewName)
        {
            string controllerName=controllerContext.RouteData.GetRequiredString("controller");
            string area=controllerContext.RouteData.Values["area"].ToString();
            return "Areas/"+area+"/Views/"+controllerName+"/"+viewName;
        }        //解析部分视图
        public override ViewEngineResult FindPartialView(ControllerContext controllerContext, string partialViewName, bool useCache)
        {
            ViewEngineResult areaResult = null;
            if (controllerContext.RouteData.Values.ContainsKey("area"))
            {
                //解析文件夹中的partialview
                string areaPartialName = FormatiViewName(controllerContext, partialViewName);
                areaResult = base.FindPartialView(controllerContext, areaPartialName, useCache);
                if (areaResult != null && areaResult.View != null)
                {
                    return areaResult;
                }
                //解析共享文件夹中的partialview
                string sharedPartialName = FromateSharedViewName(controllerContext, partialViewName);
                areaResult = base.FindPartialView(controllerContext, sharedPartialName, useCache);
                if (areaResult != null && areaResult.View != null)
                {
                    return areaResult;
                }
            }
            return base.FindPartialView(controllerContext, partialViewName, useCache);
        }
        //解析视图
        public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
        {
            ViewEngineResult areaResult = null;
            if (controllerContext.RouteData.Values.ContainsKey("area"))
            {
                string areaViewName = FormatiViewName(controllerContext, viewName);
                areaResult = base.FindView(controllerContext, areaViewName,masterName, useCache);
                if (areaResult != null && areaResult.View != null)
                {
                    return areaResult;
                }                string shareViewName = FromateSharedViewName(controllerContext, viewName);
                areaResult = base.FindView(controllerContext, shareViewName,masterName, useCache);
                if (areaResult != null && areaResult.View != null)
                {
                    return areaResult;
                }
            }
            return base.FindView(controllerContext, viewName, masterName, useCache);
        }    }
}