我正在使用asp.net mvc,但无法访问我的网页,出现 404 错误。
页面的网址:
本地主机:2334 / RAWDATA / EiphoneNews
查看文件的位置:
根目录/视图/ RAWDATA / TNews / Index.cshtml
我的路线:
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(
"RawData", // Route name
"RawData/{controller}/{action}/{id}", // URL with parameters
new { controller = "EiphoneNews", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "News.Controllers.RawData" }
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
我的控制员:
namespace News.Controllers.RawData
{
public class EiphoneNewsController : AuthorizedController
{
//
// GET: /EiphoneNews/
public ActionResult Index(int pagenum = 0, int pagesize = 20, string queryString = null)
{...}
}
}
答案 0 :(得分:9)
交换2条路线定义:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"RawData", // Route name
"RawData/{controller}/{action}/{id}", // URL with parameters
new { controller = "EiphoneNews", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "News.Controllers.RawData" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
答案 1 :(得分:0)
切换路由注册,匹配的第一条路由不是RawData
路由。由于在解析控制器之前确定了路由,因此默认路由导致404而RawData
路由不会导致路径无效。
您可能希望安装RouteDebugger软件包(可通过nuget获取)以查看路由的运行情况。