我正在编写一个MVC3应用程序,需要使用http:// [server]/[City] - [State]/[some term] /形式的URL重写。MVC3和重写
据我所知,MVC3包含使用其在Global.asax文件中定义的路由引擎{CONTROLER}/{行动}/{ID}:
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
);
}
传统上(在非MVC应用程序),我会用一些URL重写风味解码URL,例如http://www.myserver.com/City-State/somesearch/到查询字符串,看起来像这样的参数: http://www.myserver.com/city=City&state=State&query=somesearch
请记住,这一要求将从http://www.myserver.com/Home
现身3210能这样可以不必指定控制器......像这样来完成:
routes.MapRoute(
"Results",
"{city}-{state}/{searchTerm}",
new { controller = "Results", action = "Search" }
);
...或者是不是真的最好让控制器上市?
你如何在MVC3环境中处理这个问题?
谢谢。
指向您的MVC应用程序的URL是否已经存在(来自其他应用程序,PPC等的链接)?还是你问如何捕捉参数? – stepanian 2011-05-25 02:33:16
我在问上述正确的捕获参数。 – ElHaix 2011-05-25 02:47:37