Url 路由帮助 Asp.net Mvc
Url Routing Help Asp.net Mvc
我有三种 url 类型。这些:
第一个:http://localhost/
第二个:http://localhost/X/
第三个:http://localhost/X/Y/
示例Url:
http://localhost/test/
http://localhost/test/details/
第一:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
);
public class HomeController : Controller
{
// GET: /Home/
public ActionResult Index()
{
return View();
}
}
秒:
routes.MapRoute(
"Module",
"{module_name}/{controller}/{action}",
new
{
controller = "Module",
action = "Index",
module_name = UrlParameter.Optional
}
);
public class ModuleController : Controller
{
//
// GET: /Module/
public ActionResult Index(string modul_name)
{
return View();
}
}
第三个:
routes.MapRoute(
"ModuleDetails",
"{module_name}/{details_param}/{controller}/{action}",
new
{
controller = "ModuleDetails",
action = "Index",
module_name = UrlParameter.Optional,
details_param = UrlParameter.Optional
}
);
public class ModuleDetailsController : Controller
{
//
// GET: /ModuleDetails/
public ActionResult Index(string modul_name, string details_param)
{
return View();
}
}
在这种情况下;
http://localhost/X/
回应: "Home", "Index"
但是;
http://localhost/X/
响应:服务器错误中的应用程序。找不到资源。
http://localhost/X/Y/
响应:服务器错误中的应用程序。找不到资源。
我该怎么办?
谢谢,最好的问候..
http://localhost/X/
响应:应用程序在服务器错误。找不到资源。
发生这种情况是因为您的每个路由指定了至少 2 个强制参数。
尝试添加这个:
routes.MapRoute(
"Default",
"{controller}/{action}",
new
{
controller = "Home",
action = "Index"
}
);
没错朋友..
routes.MapRoute(
"Default", // Route name
"", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
routes.MapRoute(
"Module",
"{modul_name}",
new { controller = "Modul", action = "Index", modul_name = UrlParameter.Optional }
);
routes.MapRoute(
"Page",
"{modul_name}/{page_name}",
new { controller = "Page", action = "Index", modul_name = UrlParameter.Optional, page_name = UrlParameter.Optional }
);
我有三种 url 类型。这些:
第一个:http://localhost/
第二个:http://localhost/X/
第三个:http://localhost/X/Y/
示例Url:
http://localhost/test/
http://localhost/test/details/
第一:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
);
public class HomeController : Controller
{
// GET: /Home/
public ActionResult Index()
{
return View();
}
}
秒:
routes.MapRoute(
"Module",
"{module_name}/{controller}/{action}",
new
{
controller = "Module",
action = "Index",
module_name = UrlParameter.Optional
}
);
public class ModuleController : Controller
{
//
// GET: /Module/
public ActionResult Index(string modul_name)
{
return View();
}
}
第三个:
routes.MapRoute(
"ModuleDetails",
"{module_name}/{details_param}/{controller}/{action}",
new
{
controller = "ModuleDetails",
action = "Index",
module_name = UrlParameter.Optional,
details_param = UrlParameter.Optional
}
);
public class ModuleDetailsController : Controller
{
//
// GET: /ModuleDetails/
public ActionResult Index(string modul_name, string details_param)
{
return View();
}
}
在这种情况下;
http://localhost/X/
回应: "Home", "Index"
但是;
http://localhost/X/
响应:服务器错误中的应用程序。找不到资源。
http://localhost/X/Y/
响应:服务器错误中的应用程序。找不到资源。
我该怎么办? 谢谢,最好的问候..
http://localhost/X/ 响应:应用程序在服务器错误。找不到资源。
发生这种情况是因为您的每个路由指定了至少 2 个强制参数。
尝试添加这个:
routes.MapRoute(
"Default",
"{controller}/{action}",
new
{
controller = "Home",
action = "Index"
}
);
没错朋友..
routes.MapRoute(
"Default", // Route name
"", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
routes.MapRoute(
"Module",
"{modul_name}",
new { controller = "Modul", action = "Index", modul_name = UrlParameter.Optional }
);
routes.MapRoute(
"Page",
"{modul_name}/{page_name}",
new { controller = "Page", action = "Index", modul_name = UrlParameter.Optional, page_name = UrlParameter.Optional }
);