Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 向MVC 3项目添加新页面会导致;“未找到资源”;错误_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 向MVC 3项目添加新页面会导致;“未找到资源”;错误

Asp.net mvc 向MVC 3项目添加新页面会导致;“未找到资源”;错误,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我有一个现有的MVC3项目,我已经工作了一段时间。今天我决定添加一个新页面。我添加了一个新视图,将其与现有控制器上的actionresult连接起来,但没有骰子。我有一个404。我想可能视图有点不稳定,所以我做了一个响应。在控制器中写入(将视图从等式中去掉)。没有骰子。我尝试创建一个新的控制器。同样的事情。我尝试移动现有页面。同样的事情。所有现有页面都可以工作,但我无法添加新页面或移动现有页面。我的键盘上满是头发。请帮忙 My global.asax: public static void Re

我有一个现有的MVC3项目,我已经工作了一段时间。今天我决定添加一个新页面。我添加了一个新视图,将其与现有控制器上的actionresult连接起来,但没有骰子。我有一个404。我想可能视图有点不稳定,所以我做了一个响应。在控制器中写入(将视图从等式中去掉)。没有骰子。我尝试创建一个新的控制器。同样的事情。我尝试移动现有页面。同样的事情。所有现有页面都可以工作,但我无法添加新页面或移动现有页面。我的键盘上满是头发。请帮忙

My global.asax:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }

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

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

        routes.MapRoute(
            "Home",
            "",
            new { controller = "Home", action = "Index" }
        ); 
    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }
我试图添加的视图是/视图/餐厅/附近

控制器为/Controllers/restaurantcontroller,操作结果为:

public ActionResult Nearby()
    {
        return View();
    }

首先从路线定义中删除以下无用的行:

routes.MapRoute(
    "Home",
    "",
    new { controller = "Home", action = "Index" }
);
因此,您只有默认的路线设置:

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

    routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}
现在,为了访问新的控制器操作,您需要导航到
/Restaurants/nearly
。这将在
控制器上呈现
附近的
操作:

public class RestaurantsController: Controller
{
    public ActionResult Nearby()
    {
        return View();
    }
}

这显然会执行
~/Views/Restaurants/nearest.cshtml
视图。

首先从路线定义中删除以下无用的行:

routes.MapRoute(
    "Home",
    "",
    new { controller = "Home", action = "Index" }
);
因此,您只有默认的路线设置:

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

    routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}
现在,为了访问新的控制器操作,您需要导航到
/Restaurants/nearly
。这将在
控制器上呈现
附近的
操作:

public class RestaurantsController: Controller
{
    public ActionResult Nearby()
    {
        return View();
    }
}

这显然会执行
~/Views/Restaurants/nearest.cshtml
视图。

您可以尝试添加路由调试器NuGet包IIRC

Get Package routedebugger

如果需要,请更改web.config条目以激活所有请求的路由调试器:


然后,您应该构建并运行您的项目,并导航到
/Restaurants/near/
。由此产生的诊断应该告诉您路由问题(如果有)在哪里。如果您仍然有问题,请用路由调试信息编辑您的帖子,我们将看看我们能做些什么

您可以尝试添加路由调试器NuGet包IIRC

Get Package routedebugger

如果需要,请更改web.config条目以激活所有请求的路由调试器:


然后,您应该构建并运行您的项目,并导航到
/Restaurants/near/
。由此产生的诊断应该告诉您路由问题(如果有)在哪里。如果您仍然有问题,请用路由调试信息编辑您的帖子,我们将看看我们能做些什么

我知道这是一条老线索,但我发现许多“资源未找到”解决方案对我没有帮助。过了一段时间,我解决了我的问题。希望它能帮助其他人

问题是我一直在忙于部署我的应用程序,所以我的项目碰巧被设置为“发布”配置。我还修改了发布配置,以编译到不同的文件夹

所以我想当我在工具栏上点击“Run”时,它会选择一个旧的DLL并从中运行


我只花了三个小时在这上面,所以我很高兴。

我知道这是一个旧线程,但我发现许多“资源未找到”解决方案对我没有帮助。过了一段时间,我解决了我的问题。希望它能帮助其他人

问题是我一直在忙于部署我的应用程序,所以我的项目碰巧被设置为“发布”配置。我还修改了发布配置,以编译到不同的文件夹

所以我想当我在工具栏上点击“Run”时,它会选择一个旧的DLL并从中运行


我只花了三个小时,所以我很高兴。

你使用什么URL访问该页面?你是如何解决这个问题的?我也有同样的问题,在Home controller中添加了新操作(也是一个视图),新创建的页面不再工作。您使用什么URL访问该页面?您是如何解决此问题的?我有同样的问题,添加了新的行动(也是一个视图)到主控制器和新创建的页面不再工作。感谢快速回复,但这不工作。此url:返回404@dhyasama,使用默认向导启动一个新的ASP.NET MVC 3应用程序。添加一个
restaurantcontroller
,完全如我在
~/Controllers/restaurantcontroller.cs
中的回答所示。然后添加相应的
~/Views/Restaurants/nearner.cshtml
视图。点击F5运行您的项目并导航到附近的
/Restaurants/nearly
。该功能正常。知道是什么导致了最初项目中的问题吗?我不想把整个项目复制到一个新项目上。另外,我想获得更深层次的理解,而不仅仅是继续前进。再次感谢。@dhyasama,不知道。我不熟悉您现有的项目,也不熟悉它包含的内容。你只展示了它的一小部分,我也展示了如何让它工作。现在,如果它仍然不起作用,那么在你的代码的其他部分可能会发生一些其他的事情,不幸的是我猜不到。谢谢你的快速回复,但这不起作用。此url:返回404@dhyasama,使用默认向导启动一个新的ASP.NET MVC 3应用程序。添加一个
restaurantcontroller
,完全如我在
~/Controllers/restaurantcontroller.cs
中的回答所示。然后添加相应的
~/Views/Restaurants/nearner.cshtml
视图。点击F5运行您的项目并导航到附近的
/Restaurants/nearly
。该功能正常。知道是什么导致了最初项目中的问题吗?我不想把整个项目复制到一个新项目上。另外,我想获得更深层次的理解,而不仅仅是继续前进。再次感谢。@dhyasama,不知道。我不熟悉你现有的项目,也不知道它是什么