我有三种网址类型。这些:
首先:http://localhost/
第二:http://localhost/X/
第三名:http://localhost/X/Y/
示例网址:
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/
回复:“主页”,“索引”
但;
http://localhost/X/
响应:应用程序在服务器错误。资源未找到。
http://localhost/X/Y/
响应:应用程序在服务器错误。资源未找到。
我该怎么办? 谢谢,最好的问候..
答案 0 :(得分:1)
http://localhost/X/ 响应:应用程序在服务器错误。资源未找到。
这是因为您的每个路由都指定了至少2个必需参数。
尝试添加以下内容:
routes.MapRoute(
"Default",
"{controller}/{action}",
new
{
controller = "Home",
action = "Index"
}
);
答案 1 :(得分:0)
那个正确的朋友..
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 }
);