1)它取決於即將來臨 - 是否是動態部分。我假定這是和建議是這樣的:
的Global.asax
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Page", // Route name
"{pageName}", // URL with parameters
new { controller = "Home", action = "Page"} // Parameter defaults
);
}
public class HomeController : Controller
{
public ActionResult Page(string pageName)
{
return View();
}
}
2)可以解決正如我上面顯示同樣的方式,但請記住,路線的順序很重要。那第一個匹配勝利。如果你想要兩個具有不同邏輯但類似的url結構www.mysite.com/coming-soon和www.mysite.com/{profile name}的動作,假設第一個url有靜態部分,後面的動態可以做類似這樣的:
的Global.asax
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Coming-soon", // Route name
"coming-soon", // URL with parameters
new { controller = "Home", action = "ComingSoon" } // Parameter defaults
);
routes.MapRoute(
"Profiles", // Route name
"{profileName}", // URL with parameters
new { controller = "Home", action = "Profile"} // Parameter defaults
);
}
public class HomeController : Controller
{
public ActionResult ComingSoon()
{
return View();
}
public ActionResult Profile(string profileName)
{
return View();
}
}
酷我會嘗試這個。所以這裏的順序很重要,因爲如果存在正確的控制器名稱,您不希望使用動態配置文件操作名稱?例如,當[profilename]碰巧是「controllername」時,www.website.com/controllername將勝過www.website.com/[profilename]。 – mike 2011-01-20 17:44:34
基本上是,更正它的行動名稱不是控制器名稱。 如果這可以解決您的問題,請將其標記爲答案;) – frennky 2011-01-20 19:00:25