ASP.NET MVC缺少默认操作仅适用于一个控制器

时间:2014-11-06 11:31:55

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

我不知道我的网站发生了什么。从今天起默认行动"索引"只有一个控制器不再工作。 如果我拨打http://website.com/Valuation,我会收到403错误页面,因为网络服务器没有路由我的请求并尝试浏览该文件夹。如果我写http://website.com/Valuation/Index一切正常。 我搜索所有代码,但我找不到问题,一切看起来都像其他控制器一样好。

我怎样才能找到问题?您知道是否存在导致该问题的已知问题,或者您是否知道路由请求是否存在trace \ log \ debugger?

由于

MIC

2 个答案:

答案 0 :(得分:3)

问题很可能是您的网站根目录中有一个名为估价的文件夹。这就是为什么估值指数行动不起作用。网址http://website.com/Valuation不是路由到控制器操作,而是路由到文件夹评估

从您的根目录中删除此文件夹评估或重命名,然后此网址http://website.com/Valuation将有效。

同时检查ValuationController是否具有公共ActionResult索引()([HttpGet]方法。

答案 1 :(得分:0)

检查〜\ App_Start \ RouteConfig.cs文件

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

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional}
            );
        }
    }