gpt4 book ai didi

asp.net-mvc-3 - MVC3、ASP.NET 4 - 找不到资源。

转载 作者:行者123 更新时间:2023-12-02 01:34:30 24 4
gpt4 key购买 nike

我有 VS2010、MVC3 和 ASP.NET 4.0 以及一个简单的测试 mvc 应用程序。问题是我仍然不断收到错误:

“/”应用程序中的服务器错误。

找不到资源。描述:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下 URL 并确保拼写正确。

请求的 URL:/Pizzas/Pizza

这是我的简单 Controller :

public class PizzasController : Controller
{
public ActionResult Pizza()
{
var pizzas = new Pizza();
return View("Pizza", pizza);
}

}

这是我的 global.asax 的一部分:

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

routes.MapRoute(
"Pizza_1",
"Pizzas/Pizza",
new { controller = "Pizzas", action = "Pizza"}

);

routes.MapRoute(
"Pizzas_2", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Pizzas", action = "Pizza" } // Parameter defaults
);

}

我试图通过这种方式从 Pizza.cshtml 调用此操作:

@Html.ActionLink("Test", "Pizza", "Pizzas");

当两条路由均未注释时,执行将转到 Pizza_2 路由并且顺利通过。但是,如果我注释掉 Pizza_2,那么它会转到 Pizza_1 并且会发生错误,而不会到达操作方法。该应用程序在 ASP.NET 开发服务器(不是 IIS)上运行。我注意到它仅在没有指定完整 url 时才适用于 Pizza_2 路由: http://localhost:2893

但是如果输入完整的网址,如下所示: http://localhost:2893/Pizzas/Pizza

错误再次发生。

最佳答案

删除

    routes.IgnoreRoute("{Scripts}/{*pathInfo}");

根据http://msdn.microsoft.com/en-us/library/cc668201.aspx#url_patterns {Scripts} 被解析为参数。

如果你想对脚本进行直通,你应该使用

    routes.IgnoreRoute("Scripts/{*pathInfo}");

关于asp.net-mvc-3 - MVC3、ASP.NET 4 - 找不到资源。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7507079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com