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